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

MongoDBで複数のドキュメントを更新するにはどうすればよいですか?


複数のドキュメントを更新するには、multi:trueを使用する必要があります。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.multiUpdateDemo.insertOne({"ClientName":"John","ClientAge":29});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cda5bc0b50a6c6dd317adc8")
}
> db.multiUpdateDemo.insertOne({"ClientName":"Carol","ClientAge":31});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cda5bc1b50a6c6dd317adc9")
}
> db.multiUpdateDemo.insertOne({"ClientName":"John","ClientAge":39});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cda5bc3b50a6c6dd317adca")
}
> db.multiUpdateDemo.insertOne({"ClientName":"John","ClientAge":41});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cda5bc5b50a6c6dd317adcb")
}
> db.multiUpdateDemo.insertOne({"ClientName":"David","ClientAge":35});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cda5bc6b50a6c6dd317adcc")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

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

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

{
   "_id" : ObjectId("5cda5bc0b50a6c6dd317adc8"),
   "ClientName" : "John",
   "ClientAge" : 29
}
{
   "_id" : ObjectId("5cda5bc1b50a6c6dd317adc9"),
   "ClientName" : "Carol",
   "ClientAge" : 31
}
{
   "_id" : ObjectId("5cda5bc3b50a6c6dd317adca"),
   "ClientName" : "John",
   "ClientAge" : 39
}
{
   "_id" : ObjectId("5cda5bc5b50a6c6dd317adcb"),
   "ClientName" : "John",
   "ClientAge" : 41
}
{
   "_id" : ObjectId("5cda5bc6b50a6c6dd317adcc"),
   "ClientName" : "David",
   "ClientAge" : 35
}

以下は、マルチアップデートを実行するためのクエリです。 3人のクライアントのClientName“ John”は、以下のクエリを使用して年齢を更新します-

> db.multiUpdateDemo.update({'ClientName': 'John'}, {$set: {'ClientAge': 34}}, {multi: true});
WriteResult({ "nMatched" : 3, "nUpserted" : 0, "nModified" : 3 })

もう一度書類を確認しましょう-

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

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

{
   "_id" : ObjectId("5cda5bc0b50a6c6dd317adc8"),
   "ClientName" : "John",
   "ClientAge" : 34
}
{
   "_id" : ObjectId("5cda5bc1b50a6c6dd317adc9"),
   "ClientName" : "Carol",
   "ClientAge" : 31
}
{
   "_id" : ObjectId("5cda5bc3b50a6c6dd317adca"),
   "ClientName" : "John",
   "ClientAge" : 34
}
{
   "_id" : ObjectId("5cda5bc5b50a6c6dd317adcb"),
   "ClientName" : "John",
   "ClientAge" : 34
}
{
   "_id" : ObjectId("5cda5bc6b50a6c6dd317adcc"),
   "ClientName" : "David",
   "ClientAge" : 35
}

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

    1つのクエリで多くのドキュメントを更新するには、MongoDBでbulkWrite()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eb0309f5637cd592b2a4aee") } > db.demo760.insert

  2. Javaを使用してMongoDBコレクション内の複数のドキュメントを更新するにはどうすればよいですか?

    updateMany()の使用 コレクションのすべてのドキュメントを更新できる方法。 構文 db.COLLECTION_NAME.update(<filter>, <update>) Javaでは、com.mongodb.client.MongoCollectionインターフェースが同じ名前のメソッドを提供します。このメソッドを使用すると、コレクション内の複数のドキュメントを一度に更新できます。このメソッドには、更新用のフィルターと値を渡す必要があります。 例 import com.mongodb.client.FindIterable; import com.mon