Node.js Mogoose findOneAndUpdate回调不是函数

Node.js Mogoose findOneAndUpdate回调不是函数,node.js,mongodb,Node.js,Mongodb,尝试更新现有文档时收到错误。我已经考虑过其他解决方案,但我无法解决我的问题 错误: MongooseError: Callback must be a function, got [object Object] 代码: 其中v1,v2。。是我想在mongo中更新的内容和mongo中字段的名称。 不确定回调为什么不是函数。,它们都是可选的: [条件]«对象» [更新]«对象» [选项]«对象»可选请参见Query.prototype.setOptions() [options.lean]«Obj

尝试更新现有文档时收到错误。我已经考虑过其他解决方案,但我无法解决我的问题

错误:

MongooseError: Callback must be a function, got [object Object]
代码:

其中v1,v2。。是我想在mongo中更新的内容和mongo中字段的名称。 不确定回调为什么不是函数。

,它们都是可选的:

[条件]«对象»

[更新]«对象»

[选项]«对象»可选请参见Query.prototype.setOptions()

[options.lean]«Object»如果是truthy,mongoose将返回文档 作为一个普通的JavaScript对象,而不是mongoose文档。看见 Query.lean()

[回调]«函数»

虽然提供了5个参数,
{returnOriginal:false}
是不需要的参数,并且与回调参数混淆

returnOriginal
在当前Mongoose版本中不是有效选项。如果应返回新文档而不是原始文档,则已使用的
new
选项就是这种情况:

new:bool-如果为true,则返回修改后的文档,而不是 起初的默认值为false(在4.0中更改)

应该是:

formSchemas.findOneAndUpdate({'email':email, 'condition1': condition1, 'condition2': condition2},
        { $set: { "v1": v1, "v2": v2,
          "v3": v3, "v4": v4,
          "v5": v5 }},
          {new: true},
           function(err, doc){
           ...
           }
);
回调API已经过时,Mongoose非常适合使用承诺

formSchemas.findOneAndUpdate({'email':email, 'condition1': condition1, 'condition2': condition2},
        { $set: { "v1": v1, "v2": v2,
          "v3": v3, "v4": v4,
          "v5": v5 }},
          {new: true},
           function(err, doc){
           ...
           }
);