C# 替换数组中的值
我使用的是Mongodb C#官方驱动程序。我想用其他值更改数组中的特定值。数组包含值列表。例如C# 替换数组中的值,c#,mongodb,C#,Mongodb,我使用的是Mongodb C#官方驱动程序。我想用其他值更改数组中的特定值。数组包含值列表。例如 { _id: id1, values: [23, 78, 20] } 我想把23换成25。 我知道一个答案,如果它是正确的。 首先我拉动那个元素,然后推动另一个元素。但问题是,如果元素不存在,那么“推”也会插入元素。其次,它将更改位置并在末尾插入元素。 请告诉我怎么做。您应该使用以下方法: db.collection.update({_id: id1, values: 23}, {$
{
_id: id1,
values: [23, 78, 20]
}
我想把23换成25。
我知道一个答案,如果它是正确的。
首先我拉动那个元素,然后推动另一个元素。但问题是,如果元素不存在,那么“推”也会插入元素。其次,它将更改位置并在末尾插入元素。
请告诉我怎么做。您应该使用以下方法:
db.collection.update({_id: id1, values: 23}, {$set: {'values.$': 25}})
这应该适合你
db.collection.update({ "_id" : id1 }, {$set: {"values.0": 23}});
也检查一下这个帖子
阅读有关位置运算符的内容我已经阅读了,但所有示例都是关于增加值的。好吧,将
$inc
交换为$set
,您就可以开始了。我已经完成了。但是它在那个数组中插入了空值..我刚刚做了,它按预期工作。您的代码有问题。我认为您需要将\u id
添加到此答案中。否则,您将使用值更新第一个文档,该值为23,这不是您想要的。@GatesVP:谢谢,它可以工作。但是,如果我想用某个数字替换每次出现的23,该怎么办呢适用于first matched。@HimaniTalesara:您可以重复运行此更新,也可以将文档提取到应用程序中,在那里修改并保存。db.collection.update({values:23},{$set:{'values.$':25}},false,true)
额外的false
是“请勿插入”。额外的true
是“多次执行此更新”。@GatesVP:如果他需要替换同一文档中的多个值,则此操作无效。:)