mongoose:不存在则保存,存在则不更新

syl*_*syl 1 mongoose

在猫鼬中,是否有一行代码可以保存文档(如果文档不存在),否则不要更新现有文档。

我在网上搜索过,但大多数答案都是关于更新现有的一份文档。

syl*_*syl 7

经过一番幸运的搜索,我发现以下链接非常有用:

\n\n\n\n

关键是$setOnInsert在更新参数和upsert:true选项参数中设置。

\n\n

这是一个代码示例:

\n\n

\r\n
\r\n
let query = {id: searchId};\r\nlet update = { \r\n  $setOnInsert: {\r\n    id: searchId,\r\n    foo: foo,\r\n    bar: bar,\r\n  }\r\n};\r\n  \r\nlet options = { upsert: true };\r\nSampleModel.findOneAndUpdate(query, update, options)\r\n  .catch(error => console.error(error));
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

绝对欢迎任何想法、答案或改进!

\n