Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用PyMongo使用自己的值更新所有MongoDB字段_Python_Mongodb_Pymongo - Fatal编程技术网

Python 使用PyMongo使用自己的值更新所有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” 我已经能够成功地迭代每个文档,但这

我想使用MongoDB集合中的每个字段自己的值来更新该字段

示例:如果我有以下文档:
“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
可能是可行的。