无法获取要更新的mongoDB文档

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

[Pymongo,Python3。真是令人绞尽脑汁。尝试update_one()find_one() update()。尝试使用mongo ID "_id"以及我在每个文档中设置的已知ID。文档中没有任何更新。谁能告诉我我要去哪里错了?请参阅下面的最后尝试。想要遍历所有集合和每个集合中的所有文档并更新特定字段。

我知道update_one()ID存在于文档中:

for collection in collectionNames:
    for doc in movie_db[str(collection)].find():
        new_path = get_updated_poster()
        new_path_url = base_url + new_path
        result = movie_db.collection.update_one({'id':int(ID)},{'$set':{'poster_path':new_path_url}})

[使用find_one_and_update(),甚至尝试将“ _id”复制都无济于事(请注意,我在这里还添加了“ from bson.objectid import ObjectId”:

for collection in collectionNames:
    for doc in movie_db[str(collection)].find():
        new_path = get_updated_poster()
        new_path_url = base_url + new_path
        result = movie_db.collection.update_one(
                     {"_id":ObjectId(id)}, 
                     {"$set": {
                         "poster_path": new_path
                     }
                     }, upsert=False)
python mongodb pymongo
1个回答
0
投票

[movie_db.collection.update_one通常意味着更新名为“集合”的集合中的一个文档。

由于您似乎正在使用collection来保存收藏夹的名称,因此您可能需要使用movie_db[str(collection)].update_one

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