2012-05-11 153 views
2

我正在使用Mongodb C#官方驅動程序。我想改變其他值的數組中的特定值。該數組包含值列表。例如。替換數組中的值

{ 
    _id: id1, 
    values: [23, 78, 20] 
} 

我想假設以取代25 23我知道一個答案,如果它是正確的。 首先我拉那個元素,然後推其他元素。但問題是,如果元素不存在,那麼push也會插入元素。其次,它會改變位置並在最後插入元素。 請告訴我該怎麼做。

+0

閱讀有關位置操作 –

+0

我讀過,但所有的例子都是工作關於增加價值。 –

+0

好吧,把'$ inc'換成'$ set'就可以了。 –

回答

5

你應該使用這樣的:

db.collection.update({_id: id1, values: 23}, {$set: {'values.$': 25}}) 
+0

我認爲你需要在這個答案中加上'_id'。否則,你將更新第一個文檔,其值爲23,這不是你想要的。 –

+0

@蓋茨VP:當然,你是對的。謝謝:) –

+0

@蓋茨VP:感謝它的作品。但是,如果我想讓每個23次被某個數字取代,該怎麼辦。 $適用於首次匹配。 –