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

MongoDBの配列内の複数の要素を更新しますか?


複数の要素を更新するには、$[]を使用します。 $ []はすべて定位置演算子であり、更新演算子が指定された配列フィールドのすべての要素を変更する必要があることを示します。

まず、ドキュメントを使用してコレクションを作成しましょう-

> db.demo385.insertOne({"ServerLogs": [
...       {
...          "status":"InActive"
...       },
...       {
...          "status":"InActive"
...       },
...       {
...          "status":"InActive"
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5b6a7522064be7ab44e7f5")
}

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

> db.demo385.find().pretty();

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

{
   "_id" : ObjectId("5e5b6a7522064be7ab44e7f5"),
   "ServerLogs" : [
      {
      "status" : "InActive"
      },
      {
         "status" : "InActive"
      },
      {
         "status" : "InActive"
      }
   ]
}

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

> db.demo385.update(
...    { "_id" : ObjectId("5e5b6a7522064be7ab44e7f5") },
...    { "$set": { "ServerLogs.$[].status": "Active" }}
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

> db.demo385.find().pretty();

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

{
   "_id" : ObjectId("5e5b6a7522064be7ab44e7f5"),
   "ServerLogs" : [
      {
         "status" : "Active"
      },
      {
         "status" : "Active"
      },
      {
         "status" : "Active"
      }
   ]
}

  1. MongoDBの配列内の要素を更新しますか?

    配列内の要素を更新するには、MongoDBで$setを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo494.insertOne( ... { ... ...    "CollegeDetails" : [ ...       { ...          "CollegeName" : "MIT", ...          "Fee

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

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