MongoDB多个数组元素更新

时间:2013-09-09 15:20:20

标签: mongodb

有没有办法更新嵌入在mongo文档的一个字段中的数组的多个元素?

前:

db.exampleCollection.update({
    "_id" : "00000002522dde26c6d65aed",
    "array.priority" : {$gt : 4}
}, {$inc : {"array.$.priority" : 10} }, false, true);

这不会更新多个元素,只会更新一个元素

1 个答案:

答案 0 :(得分:0)

update中影响多个数组元素per-doc的唯一方法是使用键中的数字索引来明确标识要按其数组位置更新的元素:

db.exampleCollection.update({
    "_id" : "00000002522dde26c6d65aed"
}, {
    $inc: {
        "array.0.priority": 10, 
        "array.1.priority": 10
    } 
}, false, true);

我知道你试图将priority > 4而不是索引的元素作为目标,但那是严酷的现实。