更新数组 mongodb 中的字段 c# 驱动程序

Update field in array mongodb c# driver

我尝试从 p2l 数组

更新对象的 status 字段
var update = Builders<BsonDocument>.Update.Set("p2l.$.status",BsonValue.Create(status))

看起来代码可以正常工作,但是如何使用类型化构建器实现它并使用 lambda 设置所有字段? 我通过以下 link 找到了解决方案 How to update a field in an array's subdocument contained in an array's subdocument in MongoDB using C# driver?

但只适用于旧版驱动

您可以尝试类似的方法:

Builders<Person>.Update.Set(x => x.Pets[-1].Name, "Fluffencutters")

注意 -1 Pets 集合的索引,这意味着对所有元素应用集合。
我通过探索 UpdateDefinitionBuilderTests.

找到了这个解决方案