簡體   English   中英

如何在NodeJS中的MongoDB中使用findOneAndUpdate或updateOne獲取matchedId或upsertedId?

[英]How to get matchedId or upsertedId with findOneAndUpdate or updateOne in MongoDB in NodeJS?

對於這兩個函數, upsert都設置為true

因此,如果沒有文檔與查詢匹配,則updateOne返回upsertedId ,但如果有一個文檔匹配,則不會返回匹配的文檔的 id(僅matchedCount = 1)。

並且將findOneAndUpdate選項設置為truenewDocument將返回更新文檔的 id(如果它已經存在),但如果它不存在,它將返回包含更新文檔的 id 的lastErrorObject但我不喜歡這是一個錯誤.

如果它已經存在,我想更新一個文檔,如果它不存在,我想創建一個新文檔,並檢索更新/創建的文檔的 id,而不會將它放在錯誤對象中。 是否可以使用單個功能?

因此,對於findOneAndUpdate選項returnNewDocument = truereturnDocument = "after"盡管returnDocument應該是returnNewDocument的替代品,但它們的行為不同。

使用returnDocument = "after"findOneAndUpdate將返回一個包含文檔的對象,無論它是更新插入還是更新(因此result.value._id將始終給出文檔的 id)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM