我正在使用一个查询来更新另一个文档中的嵌入数组。我尝试了基于相同查询的不同方法,但得到两个不同的结果
第一种方法
collection.Update(mongoQuery, MongoDB.Driver.Builders.Update.SetWrapped("Expenses.$.Description", "some text"));
在这里,Expenses 集合中嵌入文档的描述按预期更新。
阅读更多的 C# API 我发现了通用更新并尝试了这个:
collection.Update(mongoQuery, Update<Expense>.Set(e => e.Description, "some text"));
结果不一样。父文档没有更新嵌入文档,而是获得了一个名为 Description 的新属性。
我可以在第一个查询中看到我对“Expenses”集合更加明确,而在第二个查询中我只是指定了 Expense 类型。现在是否可以以通用方式进行相同的更新?