2

我有这个 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 循环?

4

1 回答 1

1

目前 MongoDB 不支持一次更新多个数组元素。但是,您可以选择使用Update if Current模式或类似的方式在本地更新您的文档,然后在数据库上替换它,而不是按顺序执行多个更新。

此外,查看原始jira,您可以在评论中找到一些解决方法。

于 2012-12-04T07:06:54.467 回答