MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да актуализирам дълбоко вложен масив с C# MongoDB.Driver?

Причината, поради която не работи с умножение '-1' защото е същото като позиционен оператор $ .В официалната документация под темата „Вложени масиви“ можем да видим следното:

От MongoDb 3.6 има нови функции, които позволяват работа с вложени масиви.

Операторът за всички позиции

Филтрираният позиционен оператор :

И така, използвайки оператора за филтрирана позиция, моят код сега изглежда така:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose - Запазване на масив от низове

  2. Събиране на обекти за събиране на Mongodb общо часове

  3. Какви са режийните разходи на Java ORM за MongoDB

  4. Не може да се свърже с mongoDB с Nodejs, използвайки Docker-compose

  5. Разделената колекция MongoDB не се ребалансира