[英]How to get matchedId or upsertedId with findOneAndUpdate or updateOne in MongoDB in NodeJS?
對於這兩個函數, upsert
都設置為true
。
因此,如果沒有文檔與查詢匹配,則updateOne
返回upsertedId
,但如果有一個文檔匹配,則不會返回匹配的文檔的 id(僅matchedCount
= 1)。
並且將findOneAndUpdate
選項設置為true
的newDocument
將返回更新文檔的 id(如果它已經存在),但如果它不存在,它將返回包含更新文檔的 id 的lastErrorObject
但我不喜歡這是一個錯誤.
如果它已經存在,我想更新一個文檔,如果它不存在,我想創建一個新文檔,並檢索更新/創建的文檔的 id,而不會將它放在錯誤對象中。 是否可以使用單個功能?
因此,對於findOneAndUpdate
選項returnNewDocument = true
和returnDocument = "after"
盡管returnDocument
應該是returnNewDocument
的替代品,但它們的行為不同。
使用returnDocument = "after"
, findOneAndUpdate
將返回一個包含文檔的對象,無論它是更新插入還是更新(因此result.value._id
將始終給出文檔的 id)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.