De reden waarom het niet werkt met vermenigvuldigen '-1'
omdat het hetzelfde is als positionele operator
$
.In officiële documentatie onder het onderwerp "Nested Arrays" kunnen we het volgende zien:
Van MongoDb 3.6 er zijn nieuwe functies die het mogelijk maken om met geneste arrays te werken.
De gefilterde positionele operator :
Dus, met behulp van de gefilterde positie-operator ziet mijn code er nu als volgt uit:
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))
}
});