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

MongoDBを使用して、特定のネストされたドキュメントのオブジェクトの配列をクエリしますか?


ネストされたドキュメントのオブジェクトの配列をクエリするには、find()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo763.insertOne(
...    {
...       _id:1,
...       CountryName:"US",
...       "studentInformation": [
...          {
...             StudentName:"Chris",
...          },
...          {
...             StudentName:"David",
...             StudentAge:22
...          }
...       ]
...    }
... );
{ "acknowledged" : true, "insertedId" : 1 }

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo763.find();

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

{ "_id" : 1, "CountryName" : "US", "studentInformation" : [ { "StudentName" : "Chris" }, { "StudentName" : "David", "StudentAge" : 22 } ] }

以下は、オブジェクトの配列をクエリして特定のネストされたドキュメントをフェッチする方法です-

> db.demo763.find({},
... {
...    studentInformation: {
...       $elemMatch: {
...          StudentAge: {
...             $exists: true
...          }
...       }
...    }
... })

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

{ "_id" : 1, "studentInformation" : [ { "StudentName" : "David", "StudentAge" : 22 } ] }

  1. 特定の値より大きい配列値を持つドキュメントを照合するためのMongoDBクエリ

    $elemMatchを使用できます。 $ elemMatch演算子は、指定されたすべてのクエリ条件に一致する要素が少なくとも1つある配列フィールドを含むドキュメントと一致します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo701.insertOne({"ListOfValues":[100,200,300]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea6e8cf5512

  2. MongoDBでネストされた配列のフィルタリング条件を設定します

    フィルタリング条件を設定するには、MongoDBaggregate()で$filterと$condを使用します。 $ filterは、指定された条件に基づいて返す配列のサブセットを選択します。ドキュメントを使用してコレクションを作成しましょう- > db.demo725.insertOne( ...    { ... ...       "details": { ... ...          "userMessages": [ ...