在 Mongoose 上查找查询执行时,响应数据作为多个对象,实际数据位于_doc属性或字段中,它仅在某些情况下发生。我可以通过获取Obj._doc.something来处理数据,但是我无法编辑数据并保存( Mongoose 模型函数)。请帮助我解决此问题。

注意:模式字段已动态添加。

PatientOrderMigration.find({ mrn: orderitem.mrn, visituid: orderitem.visituid },
function (err, orderDoc)
{
//log data correctly.
console.log(orderDoc);
// undefined
console.log(orderDoc._id);
// correct data
console.log(orderDoc._doc._id);
}

最佳答案

好吧,Model.find()将为您提供在DB上找到的对象数组,如果您想直接访问您的对象,则可以使用Model.findOne()

PatientOrderMigration.find({ mrn: orderitem.mrn, visituid: orderitem.visituid },function (err, orderDoc) {

    orderDoc = orderDoc[0];//Here is the Fix, you can comment this if you use findOne

    orderDoc.mrn = "New Value you want to update";

    orderDoc.save(function(err, result){
           console.log('err',err)
   })
}}

09-18 11:53