Javascript 如何在同时进行查询时不拾取同一对象两次?

Javascript 如何在同时进行查询时不拾取同一对象两次?,javascript,mongodb,concurrency,parse-platform,Javascript,Mongodb,Concurrency,Parse Platform,我正在从事一项送货服务,我同时处理8份订单,对于每一份订单,我必须获得一个保存在数据库中的唯一寄售编号。但由于这些操作是并行的,因此它们都拾取相同的对象/托运编号 constquery=newparse.query(“委托”) query.doesNotExist(“订单”) query.equalTo(“暂存”,暂存) query.exists(“编号”) 查询.限额(1) 等待query.find().then(函数(结果){ 如果(result.length>0){ 订单.set(“委托编

我正在从事一项送货服务,我同时处理8份订单,对于每一份订单,我必须获得一个保存在数据库中的唯一寄售编号。但由于这些操作是并行的,因此它们都拾取相同的对象/托运编号

constquery=newparse.query(“委托”)
query.doesNotExist(“订单”)
query.equalTo(“暂存”,暂存)
query.exists(“编号”)
查询.限额(1)
等待query.find().then(函数(结果){
如果(result.length>0){
订单.set(“委托编号”,结果[0]。获取(“编号”)
结果[0]。设置(“顺序”,顺序)
}否则{
//失败
}
}).catch((错误)=>{
控制台日志(err);
})

如何使此查询即使同时运行也能拾取唯一的对象?

根据其他人给出的答案:

  • 创建计数器集合
  • {value:1}
  • 无论何时需要值,请使用“查找并修改”来
    $inc
    此文档并返回新值

这应该可以(取决于)为您提供不同的值,请注意,在您的文档中,如果您先插入一个稍后检索到的值,则这些值可能会不连续。

我不是专家,但您可能会从中找到灵感(这会引导您)祝您好运!