mongodb .NET 驱动程序更新嵌套数组

mongodb .NET driver update nested array

我正在尝试增加按索引访问的嵌套数组中的值。有意义的是,Client 对象包含一个 Order 对象列表。 Order 对象包含 int Stars。我的目标是将 Stars int 增加一个,例如:

            await mongoContext.Clients.UpdateOneAsync(x => x.Id == model.PostId,
           Builders<Client>.Update.Inc(x => x.Orders.ElementAt(index).Stars, 1));

上面的代码给我错误信息: 如果我传递一个确切的数字(不是可变的),它工作正常:

            await mongoContext.Clients.UpdateOneAsync(x => x.Id == model.PostId,
           Builders<Client>.Update.Inc(x => x.Orders.ElementAt(0).Stars, 1));

我也尝试过更简单的方法 x => x.Orders[index].Stars(不是通过 "ElementAt()"),但它总是失败。

欢迎任何帮助。

这是一个已知问题,请检查this

在2.0.0以后的驱动版本中解决(目前是2.6.0)