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

MongoDBで複数の条件で配列を更新する方法


複数の条件で配列を更新するには、MongoDBで$pushを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo94.insertOne(
... {
...
...    "Details" : [
...       {
...          "Name" : "Chris",
...          "Subject" : []
...       },
...       {
...          "Name" : "David",
...          "Subject" : []
...       },
...       {
...          "Name" : "Bob",
...          "Subject" : []
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2d553bb8903cdd865577a9")
}

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

> db.demo94.find();

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

{
   "_id" : ObjectId("5e2d553bb8903cdd865577a9"), "Details" : [
      { "Name" : "Chris", "Subject" : [ ] },
      { "Name" : "David", "Subject" : [ ] }, { "Name" : "Bob", "Subject" : [ ] }
   ]
}

以下は、MongoDBの複数の条件で配列を更新するためのクエリです-

> db.demo94.updateOne(
... {
...
...    "Details": { "$elemMatch": { "Name": "David"}}
... },
... {
...    "$push": { "Details.$.Subject": { "Subject": "MongoDB" }}
... }
...);
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

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

> db.demo94.find();

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

{
   "_id" : ObjectId("5e2d553bb8903cdd865577a9"), "Details" : [
      { "Name" : "Chris", "Subject" : [ ] },
      { "Name" : "David", "Subject" : [ { "Subject" : "MongoDB" } ] },
      { "Name" : "Bob", "Subject" : [ ] }
   ] 
}

  1. MongoDBで配列内のアイテムをカウントする方法は?

    配列内のアイテムをカウントするには、lengthを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo440.insertOne( ...    { ...       "Name":"Chris", ...       "ListOfFriends":["John","Sam","Mike"] ...    } ... ); { &nbs

  2. 一括操作で複数の更新を実行し、MongoDBの配列内の要素を更新します

    これには、initializeOrderedBulkOp()を使用します。コレクションの新しいBulk()オペレーションビルダーを初期化して返します。ビルダーは、MongoDBが一括で実行する書き込み操作の順序付きリストを作成します。 ドキュメントを使用してコレクションを作成しましょう- >db.demo550.insertOne({"Name":"Chris","details":[{"Marks":49,Result:"fail"},{"Marks":58,Resu