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

配列値をフェッチするためのMongoDBクエリ


find()を$ elemMatchと一緒に使用して、配列値をフェッチします。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.fetchingArrayValuesDemo.insertOne(
... {
...    "StudentName": "David",
...    "StudentDetails": [
...       {
...          "FatherName": "Bob",
...          "CountryName": "US",
...
...          "Favourite": [
...             {
...                "Teacher": "DAVID",
...                "Subject": [
...                   "MySQL",
...                   "MongoDB",
...                   "Java"
...                ],
...                "Marks": [
...                   50,
...                   60,
...                   65
...                ]
...             }
...          ]
...
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e06fc3425ddae1f53b621fa")
}
> db.fetchingArrayValuesDemo.insertOne(
...    {
...       "StudentName": "Robert",
...       "StudentDetails": [
...          {
...             "FatherName": "Sam",
...             "CountryName": "AUS",
...
...             "Favourite": [
...                {
...                   "Teacher": "MIKE",
...                   "Subject": [
...                      "Python",
...                      "C",
...                      "C++"
...                   ],
...                   "Marks": [
...                      76,
...                      89,
...                      91
...                   ]
...                }
...             ]
...
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e06fc6825ddae1f53b621fb")
}

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

> db.fetchingArrayValuesDemo.find();

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

{ "_id" : ObjectId("5e06fc3425ddae1f53b621fa"), "StudentName" : "David", "StudentDetails" : [ { "FatherName" : "Bob", "CountryName" : "US", "Favourite" : [ { "Teacher" : "DAVID", "Subject" : [ "MySQL", "MongoDB", "Java" ], "Marks" : [ 50, 60, 65 ] } ] } ] }
{ "_id" : ObjectId("5e06fc6825ddae1f53b621fb"), "StudentName" : "Robert", "StudentDetails" : [ { "FatherName" : "Sam", "CountryName" : "AUS", "Favourite" : [ { "Teacher" : "MIKE", "Subject" : [ "Python", "C", "C++" ], "Marks" : [ 76, 89, 91 ] } ] } ] }

配列値をフェッチするクエリは次のとおりです-

> db.fetchingArrayValuesDemo.find({
...    StudentDetails:{
...       $elemMatch: {
...          Favourite: {
...             $elemMatch: {
...                Teacher: "DAVID"
...             }
...          }
...       }
...    }
... });

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

{ "_id" : ObjectId("5e06fc3425ddae1f53b621fa"), "StudentName" : "David", "StudentDetails" : [ { "FatherName" : "Bob", "CountryName" : "US", "Favourite" : [ { "Teacher" : "DAVID", "Subject" : [ "MySQL", "MongoDB", "Java" ], "Marks" : [ 50, 60, 65 ] } ] } ] }

  1. ネストされた配列をソートするMongoDBクエリ?

    MongoDBでネストされた配列を並べ替えるには、$sortを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo505.insertOne( ... { ...    "details": [ ...    { ...       Name:"Chris", ...       "Score":58 ...    }, { ... ...      

  2. MongoDBで配列をクエリして、特定の値をフェッチします

    配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ...    { ...       "details": [ ...          { ...             "student": { ...     &nb