我正在使用Ruby MongoDB驱动程序与Sinatra应用程序中的Mongo数据库进行交互。我正在执行一些批量更新操作,我需要根据找到的文档中字段的当前值更新文档字段的值。
我想做这样的事情:
my_bulk_op.find({
'foo' => 'bar'
}).update({
'$set' => {
'my_field' => my_field += 1 # how can I get my_field's current value here?
}
})
这种方法可行吗?我意识到我可以预先找到所有值然后执行更新,但是在很多方面都违背了批量操作的目的
答案 0 :(得分:0)
您可以尝试使用以下批量操作的以下内容:
my_bulk_op.find({
'foo' => 'bar'
}).update({
'$inc' => {
'my_field' => 1
}
})
来源:https://docs.mongodb.com/manual/reference/operator/update/inc/