[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)
[movie_db.collection.update_one
通常意味着更新名为“集合”的集合中的一个文档。
由于您似乎正在使用collection
来保存收藏夹的名称,因此您可能需要使用movie_db[str(collection)].update_one