1. 更新数组的某一项不确定位置的值

初始
{
    "_id" : 1.0,
    "arr" : [ 
        3, 
        4, 
        5, 
        20
    ]
}
// 把数组arr值为20的变成10
db.getCollection('user').update(
    {"_id": 1.0, "arr": 20},
    {$set: {"arr.$": NumberInt(10)}}
)
结果
{
    "_id" : 1.0,
    "arr" : [ 
        3, 
        4, 
        5, 
        10
    ]
}

2.

{
    "_id" : 1.0,
    "arr" : [ 
        {
            "a" : 1,
            "b" : 10
        }, 
        {
            "a" : 2,
            "b" : 20
        }, 
        {
            "a" : 3,
            "b" : 30
        }
    ]
}
// 更新数组arr里面属性a为2的,把当前位置的b变成200
db.getCollection('user').update(
    {"_id": 1.0, "arr.a": 2},
    {$set: {"arr.$.b": NumberInt(200)}}
)
结果
{
    "_id" : 1.0,
    "arr" : [ 
        {
            "a" : 1,
            "b" : 10
        }, 
        {
            "a" : 2,
            "b" : 200
        }, 
        {
            "a" : 3,
            "b" : 30
        }
    ]
}

results matching ""

    No results matching ""