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

MongoDB埋め込みドキュメントで特定の要素を見つける方法は?


特定の要素を見つけるには、MongoDBで$projectを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo744.insertOne(
...    {
...       studentInformation:
...       [
...          {
...             studentName:"Robert",
...             grade:"A"
...          },
...          {
...             studentName:"Bob",
...             grade:"C"
...          },
...          {
...             studentName:"John",
...             grade:"B"
...          },
...          {
...             studentName:"Sam",
...             grade:"A"
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ead928a57bb72a10bcf0684")
}

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

> db.demo744.find();

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

{ "_id" : ObjectId("5ead928a57bb72a10bcf0684"), "studentInformation" : [ { "studentName" : "Robert", "grade" : "A" }, { "studentName" : "Bob", "grade" : "C" }, { "studentName" : "John", "grade" : "B" }, { "studentName" : "Sam", "grade" : "A" } ] }

以下は、埋め込まれたドキュメント内の特定の要素を見つけるためのクエリです-

> db.demo744.aggregate(
...    { $unwind: '$studentInformation' },
...    { $match: {'studentInformation.grade':"A"}},
...    { $project: {"studentInformation.studentName": 1}}
... )

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

{ "_id" : ObjectId("5ead928a57bb72a10bcf0684"), "studentInformation" : { "studentName" : "Robert" } }
{ "_id" : ObjectId("5ead928a57bb72a10bcf0684"), "studentInformation" : { "studentName" : "Sam" } }

  1. 既存のドキュメントを上書きせずにMongoDBドキュメントを更新するにはどうすればよいですか?

    フィールド値のみを更新するには、$ setとともにupdate()を使用します。これにより、既存のものが上書きされることはありません。まず、ドキュメントを使用してコレクションを作成しましょう- > db.demo401.insertOne( ...    { ...       "_id" : 1001, ...       "Name" : "Chris", ...       "SubjectName&qu

  2. 要素がドキュメントに存在するかどうかを確認する方法-MongoDB?

    MongoDBドキュメントに要素が存在するかどうかを確認するには、MongoDB$existsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo497.insertOne({"details":[{"Name":"Chris"},{"Name":"Bob"}]});{    "acknowledged" : true,    "insertedId" : ObjectId(&