繁体   English   中英

使用MongoDB NodeJS驱动程序更新文档

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM