![](/img/trans.png)
[英]Printing and updating all the documents in MongoDB using Node.js driver
[英]Updating Documents using MongoDB NodeJS Driver
我正在尝试使用mongodb nodejs驱动程序更新文档,而不是仅使用普通mongodb nodejs驱动程序来使用mongoose。 但是由于文档更新,我变得不确定。 无法找出问题所在。
var MongoClient = require('mongodb').MongoClient;
var ObjectID = require('mongodb').ObjectID;
var assert = require('assert');
var url = 'mongodb://localhost:27017/cmecore';
var url2= 'mongodb://localhost:27017/cmeprovisioning';
var findAndUpdateDocuments = function(db) {
MongoClient.connect(url2, function(err, db2) {
console.log("Connected to cmeprovisioning");
var updated=0;
var cursor =db.collection('physicianTasks').find({"study":"cod","phase":"mansa2","taskStatus":"Complete"});
cursor.each(function(err, doc) {
var physicianTaskDocument=doc;
if (doc != null) {
console.log(JSON.stringify(doc.result));
var assign=doc.assignedTo.toString();
var phasePhysician=null;
db2.collection('phasePhysician').findOne
({"study":"cod","phase":"mansa2","physicianId":assign},function(err,doc){
phasePhysician=doc;
console.log("ID "+phasePhysician._id);
db2.collection('rhimeReport').updateOne(
{"study":"cod","phase":"mansa2","recordStudy":"codstudy",
"recordPhase":"mansa2","rhimeTaskId":physicianTaskDocument.rhimeTask.toString(),
"recordId":physicianTaskDocument.record.toString(),
"tasks.physician":new ObjectID(phasePhysician._id.toString())
},
{
$set: { "tasks.result": physicianTaskDocument.result }
},
function(err, r) {
updated=updated+1;
console.log("After Update "+updated +" "+r );
}
);
});
}
});
});
}
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected to cmecore");
findAndUpdateDocuments(db);
});
我想念什么?
在更新声明中,您已编写
"tasks.physician":doc._id
尝试将其更改为:
"tasks.physician": mongodb.ObjectID.createFromHexString(doc._id);
要么
"tasks.physician": mongodb.ObjectID(doc._id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.