簡體   English   中英

在MongoDB中更新字典的有效方法?

[英]An efficient way to update dictionary in MongoDB?

我有這個MongoDb模式:

tags:{
"image_uid":"",
"faces": [
    {
        "image_uid":"",
        "age_real":""
    }
]}

我用字典更新的女巫

feedbacks = [{
                 'face_uid': '02d42dee-3b66-11e2-b12e-e0cb4e12150c',
                 'age': 23
             },
             {
                 'face_uid': '02d42dee-3b66-11e2-b12e-e0cb4e12150d',
                 'age': 23
             }]

通過這種方式:

 for feedback in feedbacks:
    tags.update(
        {'image_uid': image_uid, 'faces.face_uid': feedback['face_uid']},
        {"$set": {'faces.$.age_real': feedback['age']}}, w=1
    )

有沒有一種比for循環更有效的方法?

目前,MongoDB不支持一次更新多個數組元素。 但是,您可以選擇使用“ 如果當前時更新”模式或類似的方式來在本地更新文檔,然后在數據庫上替換它,而不是依次執行多個更新。

另外,請查看原始的jira ,您可以在注釋中找到幾個解決方法。

暫無
暫無

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

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