MongoError:exception:无法更新' __ v'和' __ v'同时

时间:2015-11-10 09:16:31

标签: node.js mongodb mongoose

我有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

0 个答案:

没有答案