使用 MongoDB C# 驱动程序更新列表中的字段
Update field inside the list using MongoDB C# driver
我有多个这样的 MongoDB 文档:
{
"_id":"abcde",
"Students":[
{"Name":"John","IsNew":true},
{"Name":"Steve","IsNew":true}
],
}
{
"_id":"fghij",
"Students":[
{"Name":"Ron","IsNew":true},
{"Name":"Mike","IsNew":true}
],
}
如何使用 C# 驱动程序将每个文档的所有学生的 IsNew
字段更新为 false?
您可以使用 MongoDB C# 驱动程序中的 UpdateMany
方法和 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
数组存在于所有正在更新的文档中
我有多个这样的 MongoDB 文档:
{
"_id":"abcde",
"Students":[
{"Name":"John","IsNew":true},
{"Name":"Steve","IsNew":true}
],
}
{
"_id":"fghij",
"Students":[
{"Name":"Ron","IsNew":true},
{"Name":"Mike","IsNew":true}
],
}
如何使用 C# 驱动程序将每个文档的所有学生的 IsNew
字段更新为 false?
您可以使用 MongoDB C# 驱动程序中的 UpdateMany
方法和 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
数组存在于所有正在更新的文档中