使用MongoDB的C#驱动程序列表内更新场

问题描述 投票:1回答:1

我有这样多的MongoDB文件:

{
    "_id":"abcde",
    "Students":[
        {"Name":"John","IsNew":true},
        {"Name":"Steve","IsNew":true}
    ],
}

{
    "_id":"fghij",
    "Students":[
        {"Name":"Ron","IsNew":true},
        {"Name":"Mike","IsNew":true}
    ],
}

如何更新IsNew场为false,所有学生使用C#驱动每个文档?

c# mongodb mongodb-.net-driver
1个回答
1
投票

您可以从与UpdateMany操作MongoDB的C#驱动程序中使用positional all方法:

var filter = Builders<YourModel>.Filter.Exists(x => x.Students);

FieldDefinition<YourModel, bool> field = "Students.$[].IsNew";
var update = Builders<YourModel>.Update.Set(field, false);

Col.UpdateMany(filter, update);

编辑:您可以使用.Exists()作为过滤器,以确保Students阵列存在于所有正在更新的文件

© www.soinside.com 2019 - 2024. All rights reserved.