[英]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.