我正在使用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'就可以了。 –