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

MongoDBを使用して配列内の別のドキュメントを含むすべてのドキュメントを取得するにはどうすればよいですか?


これには、MongoDBのfind()でドット表記を使用するだけです。ドキュメントを使用してコレクションを作成しましょう-

> db.demo465.insertOne(
... {
...    id: 101,
...    details: [{
...       Name: "Chris",
...       Info: {
...          Subject: "MongoDB",
...          Marks:67
...       }
...    }, {
...          Name: "David",
...          Info: {
...             Subject: "MySQL",
...             Marks:78
...       }
...    }]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e80421bb0f3fa88e2279061")
}
>
> db.demo465.insertOne(
... {
...    id: 102,
...    details: [{
...       Name: "Bob",
...       Info: {
...          Subject: "Java",
...          Marks:45
...       }
...    }, {
...          Name: "Carol",
...          Info: {
...             Subject: "C",
...             Marks:67
...          }
...       }]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e80421cb0f3fa88e2279062")
}
find()メソッドを使用してコレクションのすべてのドキュメントを表示する-

> db.demo465.find();
これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e80421bb0f3fa88e2279061"), "id" : 101, "details" : [ { "Name" : "Chris",
"Info" : { "Subject" : "MongoDB", "Marks" : 67 } }, { "Name" : "David", "Info" : { "Subject" :
"MySQL", "Marks" : 78 } } ] }
{ "_id" : ObjectId("5e80421cb0f3fa88e2279062"), "id" : 102, "details" : [ { "Name" : "Bob",
"Info" : { "Subject" : "Java", "Marks" : 45 } }, { "Name" : "Carol", "Info" : { "Subject" : "C",
"Marks" : 67 } } ] }

以下は、配列内に別のドキュメントを含むすべてのドキュメントを取得するためのクエリです-

> db.demo465.find({"details.Name":"Bob"});
これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e80421cb0f3fa88e2279062"), "id" : 102, "details" : [ { "Name" : "Bob",
"Info" : { "Subject" : "Java", "Marks" : 45 } }, { "Name" : "Carol", "Info" : { "Subject" : "C",
"Marks" : 67 } } ] }

  1. MongoDBのすべてのサブドキュメントでオブジェクトの個別のペアを取得しますか?

    オブジェクトの個別のペアを取得するには、$groupを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo522.insertOne({"Name":"John","Score":45});{    "acknowledged" : true,    "insertedId" : ObjectId("5e89b646b3fbf26334ef611b") } > db.demo522.inser

  2. MongoDBの配列フィールドを操作してすべてに一致させるにはどうすればよいですか?

    MongoDBのすべてに一致させるには、$allを使用します。 $ all演算子は、フィールドの値が指定されたすべての要素を含む配列であるドキュメントを選択します。ドキュメントを使用してコレクションを作成しましょう- > db.demo695.insertOne({"ListOfValues":[100,200,500,800]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea6d4c4551299a9f