簡體   English   中英

如何根據字典更新MongoDB/PyMongo?

[英]How to update MongoDB/PyMongo according to dictionary?

我希望為用戶更新數據庫中的所有文檔,以便每個用戶都獲得類似於

for user in user_to_state:
  collection_users.update_one({"username":user}, {$set: {"state":user_to_state[user]}})

但我想在單個查詢中完成,而不是遍歷字典一次更新一個。 這可能嗎? 它比迭代更快嗎?

如果我有每個用戶的用戶名的字典(該集合中每個文檔當前的一個字段)和他們的 state 例如 {"jim12":"TX", "jane34":"FL", ...} 有沒有辦法做一個提交整個字典並遍歷每個字典的單一查詢,還是必須使用 update_one 方法對其進行迭代?

提前致謝!

您應該能夠使用批量寫入來執行此操作。

queries = []
for user in user_to_state:
    query = {
        "updateOne": {
            "filter": {"username": user},
            "update": {"$set": {"state": user_to_state[user]}}
        }
    }
    queries.append(query)

collection_users.bulk_write(queries)

MongoDB 文檔在這里

Pymongo 文檔在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM