Node.js Mongoose findOneAndUpdate()无条件更新上次创建的文档

Node.js Mongoose findOneAndUpdate()无条件更新上次创建的文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在开发一个完整的AJAX客户机表单,如果帖子不包含客户机ID,它将创建一个新的MongoDB条目,如果有ID,它将更新条目 我尝试使用mongoose的findOneAndUpdate()如下: 我的问题是,如果条件为null或{},它将找到最后创建的条目并更新该条目,而不是创建新条目 我如何达到我想要的行为?如果为else,并根据ID可用性使用两种不同的mongoose方法?如果使用空文档或空文档进行查询,它将返回所有文档的列表,例如 db.collection.find()等价于db.c

我正在开发一个完整的AJAX客户机表单,如果帖子不包含客户机ID,它将创建一个新的MongoDB条目,如果有ID,它将更新条目

我尝试使用mongoose的findOneAndUpdate()如下:

我的问题是,如果条件为null或{},它将找到最后创建的条目并更新该条目,而不是创建新条目


我如何达到我想要的行为?如果为else,并根据ID可用性使用两种不同的mongoose方法?

如果使用空文档或空文档进行查询,它将返回所有文档的列表,例如 db.collection.find()等价于db.collection.find(null)和db.collection.find({})

只需更新
condition=payload.\u id?{u-id:payload.\u-id}:null,
行到

condition = payload._id ? { _id: payload._id } : {_id:{"$exists":false}}, 

希望能有所帮助

您是否尝试过使用
findOneAndUpdate
是的,对不起,上面实际上是打字错误。
condition = payload._id ? { _id: payload._id } : {_id:{"$exists":false}},