Как я могу обновить некоторые встроенные документы, например:
У меня есть объект:
{
"_id" : ObjectId("5648c70f574b7e15b0a2ddda"),
"Username" : "[email protected]",
"Email" : "[email protected]",
"ShoppingCartItems" : [
{
"ProductId" : NumberInt(4),
"AdditionalShippingChargeProduct" : NumberInt(0),
},
{
"ProductId" : NumberInt(4),
"AdditionalShippingChargeProduct" : NumberInt(0),
},
{
"ProductId" : NumberInt(5),
"AdditionalShippingChargeProduct" : NumberInt(0),
},
],
}
Мне нужно обновить поле AdditionalShippingChargeProduct = 5, но только там, где ProductId равно 4.
Этот код обновляет только первую позицию, мне нужно обновить все соответствующие позиции.
var builder = Builders<Customer>.Filter;
var filter = builder.ElemMatch(x => x.ShoppingCartItems, y => y.ProductId == 4);
var update = Builders<Customer>.Update
.Set("ShoppingCartItems.$.AdditionalShippingChargeProduct", 5);
var result = customer.UpdateManyAsync(filter, update).Result;
Спасибо за любую помощь.
{ShoppingCartItems.ProductId: 4}, {$ set: {"ShoppingCartItems. $. AdditionalShippingChargeProduct": 6}}