我有x个本地寄存器,它们与中央寄存器同步。我想修改旧文档或将新文档插入中央寄存器。我在中央寄存器中重命名原始id以避免id冲突。
我还需要新的doc作为返回值,这样我就可以将中央寄存器的_id
存储在我的本地寄存器中。
这就是我使用的原因:
PatientModel.findOneAndUpdate({
refId: new ObjectId(patient.refId),
institute: new ObjectId(patient.institute),
deleted: false
}, patient, { 'upsert':true, 'new': true }, (err, patientFound) ->
但是我收到了这个错误:
{ [MongoError: exception: Cannot update '__v' and '__v' at the same time]
name: 'MongoError',
message: 'exception: Cannot update \'__v\' and \'__v\' at the same time',
errmsg: 'exception: Cannot update \'__v\' and \'__v\' at the same time',
code: 16836,
ok: 0 }
如果我首先将bson对象转换为javascript对象,然后删除__v
属性,则不会出现错误。我只有__v == 0
的文档。我不认为这是一个很好的解决方案,因为我以后可能需要__v
属性。
1)导致此错误的原因 2)如何处理这个
我发现了这一点,但我不明白为什么这会有所帮助: Mongoose error: Cannot update __v and __v at the same time