sql >> Database teknologi >  >> NoSQL >> MongoDB

Hent og tilføj/opdater integreret/indlejret MongoDB-dokument på flere niveauer ved hjælp af C#

I henhold til dokumentation :

Så ved at bruge -1 er ikke en vej frem her. Den tilgang, du bør tage, er den $ positionsfiltrerede operator .

Der er ingen stærkt indtastet repræsentation i C#, så din kode kan se ud som nedenfor:

var filter = Builders<Channel>.Filter.Eq(x => x.Id, "5e4606e6ae7b090688671416");

var like = new Like() {Name = "new like", Id = "1"};
var episodeId = "5e46071d385a672b0cea0f86";
var trackId = "5e460dbe2bc5e70c9cfeac21";

var update = Builders<Channel>.Update.Push("Episodes.$[e].Tracks.$[t].Likes", like);

var arrayFilters = new List<ArrayFilterDefinition>();
ArrayFilterDefinition<BsonDocument> episodesFilter = new BsonDocument("e._id", new BsonDocument("$eq", episodeId));
ArrayFilterDefinition<BsonDocument> tracksFilter = new BsonDocument("t._id", new BsonDocument("$eq", trackId));
arrayFilters.Add(episodesFilter);
arrayFilters.Add(tracksFilter);

var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };

var result = mongoDBCollection.UpdateOne(filter, update, updateOptions);



  1. Mongo db ikke lig med forespørgsel virker ikke

  2. MongoDB - mongofiler

  3. hvordan kan jeg omskrive min mongoose-forespørgsel efter at have delt data fra en model i to?

  4. MongoDB $sampleRate