Lý do tại sao nó không hoạt động với nhân '-1'
vì nó giống với toán tử vị trí
$
Trong tài liệu chính thức về chủ đề "Mảng lồng nhau", chúng ta có thể xem tiếp theo:
Từ MongoDb 3.6 có các tính năng mới cho phép hoạt động với các mảng lồng nhau.
Vì vậy, bằng cách sử dụng toán tử vị trí được lọc, mã của tôi bây giờ trông giống như sau:
await coll.UpdateOneAsync(x => x.StoreGuid == storeGuid,
Builders<StoreModel>.Update.Set("configGroup.$[g].config.$[c].value", model.Value),
new UpdateOptions
{
ArrayFilters = new List<ArrayFilterDefinition>
{
new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("g.groupName", groupName)),
new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("c.key", model.Key))
}
});