C# 从数组中删除子文档
给定以下数据,我想删除C# 从数组中删除子文档,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,给定以下数据,我想删除“data”中的所有子文档,其中“k”==“c”。这是我的密码: var query = Query.EQ("templateId", "537c6648d7d6bd0a68a34918"); var update = Update.Pull("data", new BsonDocument() { { "k", "c" } }); MyMongoCollection.Update(query, update); 因此,发生的情况是,正好有一个文档受到影响,更新停止。我验
“data”
中的所有子文档,其中“k”==“c”
。这是我的密码:
var query = Query.EQ("templateId", "537c6648d7d6bd0a68a34918");
var update = Update.Pull("data", new BsonDocument() { { "k", "c" } });
MyMongoCollection.Update(query, update);
因此,发生的情况是,正好有一个文档受到影响,更新停止。我验证了查询,它按预期返回所有文档。只是拉更新,它打破了
有什么不对劲吗
WriteConcern没有错误。仅查询就返回3个文档,WriteConcern就有1个受影响的文档
{
"_id" : ObjectId("537c85a2d7d6bd0a68a3491b"),
"templateId" : "537c6648d7d6bd0a68a34918",
"data" : [
{"k" : "b", "v" : "111"},
{"k" : "a", "v" : "222"},
{"k" : "c", "v" : "333"}
]
},
{
"_id" : ObjectId("537d6a41d7d6bd0608cb27a4"),
"templateId" : "537c6648d7d6bd0a68a34918",
"data" : [
{"k" : "b", "v" : "111"},
{"k" : "a", "v" : "222"},
{"k" : "c", "v" : "333"}
]
}
要更新多个文档,应将设置为
Multi
:
MyMongoCollection.Update(query, update, UpdateFlags.Multi);
这将从所有文档中删除子文档
从MongoDB文档中:
默认情况下,update()方法更新匹配的单个文档
它的选择标准。调用多选项设置为的方法
如果为true,则更新多个文档