2012-05-11 151 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次被某个数字取代,该怎么办。 $适用于首次匹配。 –