我正在使用Mongodb C#官方驅動程序。我想改變其他值的數組中的特定值。該數組包含值列表。例如。替換數組中的值
{
_id: id1,
values: [23, 78, 20]
}
我想假設以取代25 23我知道一個答案,如果它是正確的。 首先我拉那個元素,然後推其他元素。但問題是,如果元素不存在,那麼push也會插入元素。其次,它會改變位置並在最後插入元素。 請告訴我該怎麼做。
我正在使用Mongodb C#官方驅動程序。我想改變其他值的數組中的特定值。該數組包含值列表。例如。替換數組中的值
{
_id: id1,
values: [23, 78, 20]
}
我想假設以取代25 23我知道一個答案,如果它是正確的。 首先我拉那個元素,然後推其他元素。但問題是,如果元素不存在,那麼push也會插入元素。其次,它會改變位置並在最後插入元素。 請告訴我該怎麼做。
你應該使用這樣的:
db.collection.update({_id: id1, values: 23}, {$set: {'values.$': 25}})
我認爲你需要在這個答案中加上'_id'。否則,你將更新第一個文檔,其值爲23,這不是你想要的。 –
@蓋茨VP:當然,你是對的。謝謝:) –
@蓋茨VP:感謝它的作品。但是,如果我想讓每個23次被某個數字取代,該怎麼辦。 $適用於首次匹配。 –
這應該與你
db.collection.update({ "_id" : id1 }, {$set: {"values.0": 23}});
閱讀有關位置操作 –
我讀過,但所有的例子都是工作關於增加價值。 –
好吧,把'$ inc'換成'$ set'就可以了。 –