MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBで整数配列を介してドキュメントを検索する方法は?


これには$where演算子を使用できます。まず、ドキュメントを使用してコレクションを作成しましょう-

>db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"John","StudentScores":[45,78,89,90]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2a219345990cee87fd88c")
}
>db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"Larry","StudentScores":[45,43,34,33]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2a22a345990cee87fd88d")
}
>db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"Chris","StudentScores":[]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2a23c345990cee87fd88e")
}
>db.searchDocumentArrayIntegerDemo.insertOne({"StudentFirstName":"David","StudentScores":[99]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2a24d345990cee87fd88f")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.searchDocumentArrayIntegerDemo.find().pretty();

これにより、次の出力が生成されます-

{
   "_id" : ObjectId("5cd2a219345990cee87fd88c"),
   "StudentFirstName" : "John",
   "StudentScores" : [
      45,
      78,
      89,
      90
   ]
}
{
   "_id" : ObjectId("5cd2a22a345990cee87fd88d"),
   "StudentFirstName" : "Larry",
   "StudentScores" : [
      45,
      43,
      34,
      33
   ]
}
{
   "_id" : ObjectId("5cd2a23c345990cee87fd88e"),
   "StudentFirstName" : "Chris",
   "StudentScores" : [ ]
}
{
   "_id" : ObjectId("5cd2a24d345990cee87fd88f"),
   "StudentFirstName" : "David",
   "StudentScores" : [
      99
   ]
}

ケース1 −配列に少なくとも1つの値が含まれている場合にクエリを実行します-

> db.searchDocumentArrayIntegerDemo.find({ $where: "this.StudentScores.length >= 1" } );

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5cd2a219345990cee87fd88c"), "StudentFirstName" : "John", "StudentScores" : [ 45, 78, 89, 90 ] }
{ "_id" : ObjectId("5cd2a22a345990cee87fd88d"), "StudentFirstName" : "Larry", "StudentScores" : [ 45, 43, 34, 33 ] }
{ "_id" : ObjectId("5cd2a24d345990cee87fd88f"), "StudentFirstName" : "David", "StudentScores" : [ 99 ] }

ケース2 −配列にすべてのドキュメントで共通の値が含まれている場合のクエリ-

> db.searchDocumentArrayIntegerDemo.find({StudentScores: 45}, {StudentScores:1});

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5cd2a219345990cee87fd88c"), "StudentScores" : [ 45, 78, 89, 90 ] }
{ "_id" : ObjectId("5cd2a22a345990cee87fd88d"), "StudentScores" : [ 45, 43, 34, 33 ] }

  1. MongoDBの配列に追加するにはどうすればよいですか?

    MongoDBの配列に追加するには、$concatArraysを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo435.insertOne({"FirstName":["Chris"],"LastName":["Brown"]} ); {    "acknowledged" : true,    "insertedId" : ObjectId("5e7719b1bbc41e36cc3c

  2. MongoDBの配列に基づいてドキュメントをフィルタリングする方法は?

    配列に基づいてドキュメントをフィルタリングするには、$elemMatchを使用します。 $ elemMatch演算子は、配列フィールドを含むドキュメントと一致します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo453.insertOne( ... { _id: 101, details: [ { Name: "David", Marks: 60 }, { Name: "Mike", Marks: 55} ] } ... ) { "acknowledged" : true, "inserte