gpt4 book ai didi

node.js - 如何高效/高性能地对多个集合进行多次查找和更新?

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:26 25 4
gpt4 key购买 nike

我正在使用mongodb和nodejs,我的用例是这样的,

当用户购买其分数存储在用户文档中的产品时,我需要更新产品文档以减少其库存,然后需要减少用户文档中用户的分数,然后需要创建一个交易记录。这里涉及到三个集合,我应该在嵌套的promise结构中执行3次findOne和Save()吗?

或者还有其他更有效的方法吗?

我目前正在使用 mongoese,我应该切换到 mongodb 官方客户端吗?

Collection1.findOne( doc1 => {
doc1.save().then({

Collection2.findOne( doc2 => {
doc1.save().then({

Collection3.findOne( doc3 => {
doc1.save().then({

})
})

})
})

})
})

最佳答案

正如 @Raj Kumar 的回答一样,您应该使用异步函数,但我想添加使用 Promise.all 而不是单独等待每个请求。最终的代码是

async function purchase() {
try {
let promise1 = Collection1.findOneAndUpdate(
condition,
update
);

let promise2 = Collection2.findOneAndUpdate(
condition,
update
);

let promie3 = Collection3.findOneAndUpdate(
condition,
update
);
let result = await Promise.all([promise1, promise2, promise3])

} catch(err) {
// handle error in any promise
}
}

关于node.js - 如何高效/高性能地对多个集合进行多次查找和更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com