Grunden til, at det ikke virker med multiplikér '-1'
fordi det er det samme som positionsoperatør
$
.I officiel dokumentation under emnet "Nested Arrays" kan vi se næste:
Fra MongoDb 3.6 der er nye funktioner, der gør det muligt at arbejde med indlejrede arrays.
Den filtrerede positionsoperator :
Så ved at bruge den filtrerede positionsoperator ser min kode sådan ud 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))
}
});