我有一个 Mongo 集合,它有两个字段,比如说“name”和“randomString”。
我想为名称创建一个随机字符串,前提是该字符串尚不存在。因此,对 { name: "SomeName"}
的第一个请求将导致保存,例如{ name: "someName", randomString: "abc"}
。第二个请求不会执行任何操作。
是否有 mongo 命令可以实现此目的?我能找到的只是诸如 findOneAndUpdate
、replaceOne
等,它们都支持可选的“upsert”,但它们在匹配时的行为是更新,我希望匹配时的行为什么都不做。
我不是在寻找像 this question 那样的 if-then 解决方案,因为我有竞争条件问题 - 我需要能够同时获取多个请求,而无需更新文档或使任何请求失败。
最佳答案
是的,有一个命令可以执行此操作,您可以使用 $addToSet 方法来执行此操作。 欲了解更多信息,请访问给定的链接:https://docs.mongodb.com/manual/reference/operator/update/addToSet/
PS:如果您对此问题仍有任何疑问,请随时进一步评论。
谢谢
关于node.js - Mongo : create if document doesn't exist, 否则什么也不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68210040/