5

我尝试statusp2l数组中更新对象的字段

var update = Builders<BsonDocument>.Update.Set("p2l.$.status",BsonValue.Create(status))

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

但它只适用于旧版本的驱动程序。

4

1 回答 1

9

您可以尝试以下方法:

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

注意Pets 集合上的-1索引,这意味着对所有元素应用集合。
我通过探索UpdateDefinitionBuilderTests找到了这个解决方案。

于 2015-08-04T10:33:36.490 回答