Python 使用PyMongo使用自己的值更新所有MongoDB字段
我想使用MongoDB集合中的每个字段自己的值来更新该字段 示例:如果我有以下文档:Python 使用PyMongo使用自己的值更新所有MongoDB字段,python,mongodb,pymongo,Python,Mongodb,Pymongo,我想使用MongoDB集合中的每个字段自己的值来更新该字段 示例:如果我有以下文档:“string”:“foo”,可能的更新会执行此操作:“string”:$string.lower()。在这里,$string应该是“foo”,但我不知道如何使用PyMongo来实现这一点 我试过这个: user_collection.update_many({}, { "$set": { "word": my_func("$word")}}) 将所有内容替换为“$word” 我已经能够成功地迭代每个文档,但这
“string”:“foo”
,可能的更新会执行此操作:“string”:$string.lower()
。在这里,$string
应该是“foo”
,但我不知道如何使用PyMongo来实现这一点
我试过这个:
user_collection.update_many({}, { "$set": { "word": my_func("$word")}})
将所有内容替换为“$word”
我已经能够成功地迭代每个文档,但这需要很长的时间。我知道,使用python函数无法在一条语句中找到和更新。您可以使用mongo查询语言:
user_collection.update_many({}, { "$set": {"name": { "$concat": ["$name", "_2"]}}})
或者使用pymongo的单独功能:
for obj in user_collection.find({some query here}):
user_collection.update({"_id": obj['_id']}, { "$set": {"name": my_func(obj['name']) } })
据我所知,您正在阅读同一文档,并使用每个键的不同值更新同一文档。可能有一种方法更适合这种情况。如果您添加更多详细信息,如如何获取文档和更新函数,将有助于更好地提出建议。我想为我的收藏中的每个文档更新一个字段。昨天我必须传递一个
urllib.parse
函数来解码每个文档的特定字段。现在,我希望使用.strip()
方法实现同样的功能。在这种情况下,使用MongoDB的内置$trim
可能是可行的。