Důvod, proč to nefunguje s multiply '-1'
protože je to stejné jako poziční operátor
$
.V oficiální dokumentaci pod předmětem "Vnořená pole" můžeme vidět následující:
Od MongoDb 3.6 existují nové funkce, které umožňují práci s vnořenými poli.
S použitím operátoru filtrované pozice tedy můj kód nyní vypadá takto:
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))
}
});