如何在NodeJS中获得MongoDB中的findOneAndUpdate或updateOne的matchdid或ups



对于这两个函数,upsert被设置为true

因此,如果没有文档匹配查询,updateOne返回upsertedId,但如果有一个文档匹配,它不返回文档的id(只有matchedCount= 1)。

findOneAndUpdatenewDocument选项设置为true将返回更新的文档的id,如果它已经存在,但如果它不存在,它将返回一个lastErrorObject,其中包含被替换的文档的id,但我不喜欢这是一个错误。

我想更新一个文档,如果它已经存在或创建一个新的,如果它不存在,并检索更新/创建的文档的id,而不是在一个错误对象。单一功能是否可行?

所以对于findOneAndUpdate选项,returnNewDocument = truereturnDocument = "after"的行为不同,尽管returnDocument被认为是returnNewDocument的替代品。

对于returnDocument = "after",findOneAndUpdate将返回一个包含文档的对象,无论它是被替换还是更新(因此result.value._id将始终给出文档的id)。

最新更新