Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从数组中删除子文档_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

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,则更新多个文档