從 MongoDB 中的一個鍵值對列表更新一組文件
讓我們建立一個包含文件的集合 -
> db.demo227.insertOne({"_id":"101","Name":"Chris"}); { "acknowledged" : true, "insertedId" : "101" } > db.demo227.insertOne({"_id":"102","Name":"Bob"}); { "acknowledged" : true, "insertedId" : "102" }
藉助 find() 方法顯示集合中的所有文件 -
> db.demo227.find();
這將產生以下輸出 -
{ "_id" : "101", "Name" : "Chris" } { "_id" : "102", "Name" : "Bob" }
以下是根據鍵值對列表更新一組文件的查詢 -
> var bulkUpdateValue = [{"_id": "101", "Name": "Robert"}, ... {"_id": "102", "Name": "Sam"} ...]; > var bulkUpdate = db.demo227.initializeUnorderedBulkOp(); > var updateCounter= undefined; > for (var i = 0; i < bulkUpdateValue.length; i++){ ... updateCounter = bulkUpdateValue[i]; ... bulkUpdate.find( {_id: updateCounter._id} ).update( {$set: {Name: updateCounter.Name}} ); ... } > bulkUpdate.execute(); BulkWriteResult({ "writeErrors" : [ ], "writeConcernErrors" : [ ], "nInserted" : 0, "nUpserted" : 0, "nMatched" : 2, "nModified" : 2, "nRemoved" : 0, "upserted" : [ ] })
藉助 find() 方法顯示集合中的所有文件 -
> db.demo227.find();
這將產生以下輸出 -
{ "_id" : "101", "Name" : "Robert" } { "_id" : "102", "Name" : "Sam" }
Advertisement