[英]MongoDB: Insert a document if not exist, but skip updating in case it already exists
如果文檔不存在,如何在 mongoose 中插入文檔而不對現有文檔進行更新(如果它已經存在)? 我知道如果我執行 upsert,它會嘗試更新(如果存在)並插入新文檔(如果不存在)。 但是,我的情況是我只想插入一個新文檔(如果不存在)並保留現有文檔而不更新它。
你走對了。 您應該在update
方法中仍然使用upsert
,但也應該使用$setOnInsert
運算符。 請在此處閱讀有關此運算符的信息。
簡而言之,使用此運算符允許您僅在導致插入新文檔時執行操作。 在其他情況下,它將簡單地跳過。
是的,您當然可以將它與 mongoose 一起使用:
YourModel.update(
{ queryField: 1 }, // query
{ $setOnInsert: { ...newDocument }}, // new doc fields
{ upsert: true } // still use upsert option
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.