MongoDBを使用した複数のアトミックアップデート?
複数のアトミック更新の場合は、$ setとともにupdate()を使用します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo699.insertOne({Name:"Chris Brown"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea6e370551299a9f98c93a7")
}
> db.demo699.insertOne({Name:"David Miller"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea6e37a551299a9f98c93a8")
}
> db.demo699.insertOne({Name:"Chris Brown"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea6e381551299a9f98c93a9")
}
> db.demo699.insertOne({Name:"John Doe"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea6e38a551299a9f98c93aa")
} find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo699.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5ea6e370551299a9f98c93a7"), "Name" : "Chris Brown" }
{ "_id" : ObjectId("5ea6e37a551299a9f98c93a8"), "Name" : "David Miller" }
{ "_id" : ObjectId("5ea6e381551299a9f98c93a9"), "Name" : "Chris Brown" }
{ "_id" : ObjectId("5ea6e38a551299a9f98c93aa"), "Name" : "John Doe" } 以下は、MongoDBを使用して複数のアトミック更新を実行するためのクエリです-
> db.demo699.update({Name:"Chris Brown"},{ $set : { Name: "Adam Smith"} }, false, true );
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 }) find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo699.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5ea6e370551299a9f98c93a7"), "Name" : "Adam Smith" }
{ "_id" : ObjectId("5ea6e37a551299a9f98c93a8"), "Name" : "David Miller" }
{ "_id" : ObjectId("5ea6e381551299a9f98c93a9"), "Name" : "Adam Smith" }
{ "_id" : ObjectId("5ea6e38a551299a9f98c93aa"), "Name" : "John Doe" } -
MongoDBアグリゲートで$redactを使用していますか?
$ redactは、ドキュメント自体に格納されている情報に基づいて、ドキュメントの内容を制限します。 $condを$redactと一緒にまとめて使用できます。ドキュメントを使用してコレクションを作成しましょう- > db.demo546.insertOne({"Value1":10,"Value2":20});{ "acknowledged" : true, "insertedId" : ObjectId("5e8e263f9e5f92834d7f05d7") }
-
MongoDB updateOne()とinsertOne()の使用
MongoDB insertOne()はドキュメントをコレクションに挿入しますが、updateOne()はクエリフィルターに基づいてコレクション内の単一のドキュメントを更新します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo735.insertOne({id:1,Name:"Chris"}); { "acknowledged" : true, "insertedId" : ObjectId("5ead51b657bb72a10bcf06