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

MongoDBで1つのクエリで多くのドキュメントを更新するにはどうすればよいですか?


1つのクエリで多くのドキュメントを更新するには、MongoDBでbulkWrite()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb0309f5637cd592b2a4aee")
}
> db.demo760.insertOne({id:2,details:{Value1:60,Value2:70}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb030a15637cd592b2a4aef")
}
> db.demo760.insertOne({id:3,details:{Value1:80,Value2:90}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eb030a15637cd592b2a4af0")
}

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

> db.demo760.find();

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

{ "_id" : ObjectId("5eb0309f5637cd592b2a4aee"), "id" : 1, "details" : { "Value1" : 100, "Value2" : 50 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4aef"), "id" : 2, "details" : { "Value1" : 60, "Value2" : 70 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4af0"), "id" : 3, "details" : { "Value1" : 80, "Value2" : 90 } }

以下は、MongoDBの1つのクエリで多くのドキュメントを更新するためのクエリです-

> db.demo760.bulkWrite([
...    {
...       updateOne: {
...          filter: {id: 1},
...          update: {$set: {'details.Value1': 900, 'details.Value2': 500}},
...       }
...    },
...    {
...    updateOne: {
...       filter: {id: 2},
...       update: {$set: {'details.Value1': 1000, 'details.Value2': 2000}},
...    },
... }
... ])
{
   "acknowledged" : true,
   "deletedCount" : 0,
   "insertedCount" : 0,
   "matchedCount" : 2,
   "upsertedCount" : 0,
   "insertedIds" : {
   },
   "upsertedIds" : {
   }
}

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

> db.demo760.find();

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

{ "_id" : ObjectId("5eb0309f5637cd592b2a4aee"), "id" : 1, "details" : { "Value1" : 900, "Value2" : 500 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4aef"), "id" : 2, "details" : { "Value1" : 1000, "Value2" : 2000 } }
{ "_id" : ObjectId("5eb030a15637cd592b2a4af0"), "id" : 3, "details" : { "Value1" : 80, "Value2" : 90 } }

  1. 特定の文字列を持つMongoDBドキュメントを見つける方法は?

    特定の文字列を含むドキュメントを検索するには、find()を使用し、その中で正規表現を含む文字列を検索します。ドキュメントを使用してコレクションを作成しましょう- > db.demo409.insertOne({"Name":"John Doe"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e70e4e515dc524f7022767c") } > db.demo409

  2. コレクション内のドキュメントの各フィールドを数式で更新するMongoDBクエリ?

    コレクション内のドキュメントの各フィールドを数式で更新するには、MongoDB update()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo749.insertOne({"details":[{"id":1,a:10},{"id":2,a:5},{"id":3,a:20}]}); {    "acknowledged" : true,    "insertedId" : ObjectId(