Il motivo per cui non funziona con moltiplicare '-1'
perché è lo stesso di operatore posizionale
$
.Nella documentazione ufficiale sotto l'argomento "Nested Arrays" possiamo vedere di seguito:
Da MongoDb 3.6 ci sono nuove funzionalità che consentono di lavorare con gli array nidificati.
L'operatore posizionale filtrato :
Quindi, usando l'operatore di posizione filtrata il mio codice ora appare così:
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))
}
});