Anledningen till att det inte fungerar med multiplicera '-1'
eftersom det är samma som positionsoperatör
$
.I officiell dokumentation under ämnet "Nested Arrays" kan vi se nästa:
Från MongoDb 3.6 det finns nya funktioner som gör det möjligt att arbeta med kapslade arrayer.
Den filtrerade positionsoperatorn :
Så med den filtrerade positionsoperatorn ser min kod ut så här nu:
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))
}
});