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

MongoDBで多くのドキュメントをアップサートする


多くのドキュメントをアップサートするには、UPSERT()とUPDATE()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo425.insertOne({"Name":"Chris","Age":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e74ee4fbbc41e36cc3cae6c")
}
> db.demo425.insertOne({"Name":"David","Age":23});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e74ee56bbc41e36cc3cae6d")
}
> db.demo425.insertOne({"Name":"Chris","Age":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e74ee57bbc41e36cc3cae6e")
}
> db.demo425.insertOne({"Name":"Chris","Age":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e74ee5cbbc41e36cc3cae6f")
}

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

> db.demo425.find();

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

{ "_id" : ObjectId("5e74ee4fbbc41e36cc3cae6c"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e74ee56bbc41e36cc3cae6d"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5e74ee57bbc41e36cc3cae6e"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e74ee5cbbc41e36cc3cae6f"), "Name" : "Chris", "Age" : 21 }

以下は、MongoDBで多くのドキュメントをアップサートするためのクエリです-

> var b1 = db.demo425.initializeUnorderedBulkOp();
> b1.find( { Name: "Chris" } ).upsert().update(
...    {
...       $setOnInsert: { id:101},
...       $set: { Name: "Robert", Age:23 }
...    }
... );
> b1.execute();
BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 0,
   "nUpserted" : 0,
   "nMatched" : 3,
   "nModified" : 3,
   "nRemoved" : 0,
   "upserted" : [ ]
})

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

> db.demo425.find();

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

{ "_id" : ObjectId("5e74ee4fbbc41e36cc3cae6c"), "Name" : "Robert", "Age" : 23 }
{ "_id" : ObjectId("5e74ee56bbc41e36cc3cae6d"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5e74ee57bbc41e36cc3cae6e"), "Name" : "Robert", "Age" : 23 }
{ "_id" : ObjectId("5e74ee5cbbc41e36cc3cae6f"), "Name" : "Robert", "Age" : 23 }

  1. MongoDBドキュメントのnull値を無視する

    MongoDBでnull値を無視するには、 $ ne:nullを使用します 集約()で。ドキュメントを使用してコレクションを作成しましょう- > db.demo722.insertOne( ...    { ...       id:101, ...       details: [ ...          { Name:""}, ...          { Name: "Da

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

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