反转 MongoDB 文档中数值字段的值

问题描述 投票:0回答:1

我试图弄清楚如何更新 MongoDB 集合中的所有文档,并将特定字段的值设置为其当前值的负数。

这是我迄今为止所尝试过的。

filter = {'field_name': {'$lt': 0.0}}

mapping = {'$set': {'$field_name', -'$field_name'}}

documents = collection.update_many(filter=filter, update=mapping)

我真的不确定我是否朝着正确的方向前进,因为我发现很难理解官方文档。

我认为执行此操作的另一种可能方法可能是使用

find()
不带过滤器迭代所有文档,并对每个文档执行更新操作。

这似乎可能无法按预期工作,因为文档将被修改,在迭代文档集合时会出现某种未定义的行为?

旁白:如果通过 Python 采取使用

update_many
的方法,那么使用 Python 似乎根本没有意义,直接使用
mongosh
在数据库上运行此查询会更有效。

mongodb pymongo
1个回答
0
投票

使用此link作为参考,我设法在

mongosh

中编译以下语句
db.pseudodata.updateMany({'field_name': {$lt: 0.0}}, [{$set: {field_name: -"$field_name"}}]

需要几个小时才能完成运行。当它发生时,我会知道它是否做了我希望它要做的事情,或者我是否只是破坏了我的数据。

© www.soinside.com 2019 - 2024. All rights reserved.