gpt4 book ai didi

node.js - 在 mongodb 中读取然后更新的最佳方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 10:45:03 24 4
gpt4 key购买 nike

我需要从集合中读取一个文档,读取它的值,然后如果该值是 <40,我需要递增该值。

这是我目前的解决方案

let promise = db.collection('transactions').findOne(
{ _id: 'myid' }
).then(doc => {
if (doc.count < 40) {
///update & increment doc.count
}
else {
//do not increment
}
});

findOneAndModify 是否允许在修改前读取文档?

最佳答案

您可以在查询中对这个条件进行编码并执行一个简单的 update :

db.collection('transactions').updateOne(
{_id: 'id', count: {$lt: 40}},
{$inc: {count: 1}}
)

如果您需要获取文档(修改前或修改后),只需使用 findAndModify :

db.collection('transactions').findAndModify({
query: {_id: 'id', count: {$lt: 40}},
update: {$inc: {count: 1}},
new: trueIfYouWantToGetTheModifiedVersion
})

关于node.js - 在 mongodb 中读取然后更新的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56857994/

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