【发布时间】:2021-09-13 12:20:12
【问题描述】:
我有一个 Mongo 集合,它有两个字段,比如说“name”和“randomString”。
我想为一个名称创建一个随机字符串,前提是它不存在。因此,{ name: "SomeName" } 的第一个请求将导致保存,例如{ name: "someName", randomString: "abc" }。第二个请求什么也不做。
这有 mongo 命令吗?我能找到的只有findOneAndUpdate、replaceOne 等东西,它们都支持可选的“upsert”,但他们在匹配时的行为是更新,我希望匹配时的行为什么都不做。
我不是在寻找像 this question 这样的 if-then 解决方案,因为我遇到了竞争条件问题 - 我需要能够同时获取多个请求,而无需更新文档或使任何请求失败。
【问题讨论】:
-
这能回答你的问题吗? Find one or create with Mongoose
-
{ name, randomString: 'abc' }不是有效的 JSON。您的输入是什么,您期望输出什么? -
@raina77ow 不是真的,我正在尝试解决此答案无法解决的竞争条件
-
@WernfriedDomscheit 这是一个nodejs对象格式