sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur uppdaterar man djupt kapslad array med C# MongoDB.Driver?

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.

All positional operator

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))
        }
    });



  1. MongoDB och MongoJS - kan inte få runCommand att fungera för textfrågor

  2. Hämta index för ett objekt efter värde i en redis-lista

  3. Sidekiq hittar inte rekord för Rails Active Job

  4. MongoTimeoutUndantag:Ingen servermatchning - MongoDB Atlas