sql >> Databasteknik >  >> NoSQL >> MongoDB

Fråga, filtrera och uppdatera kapslade arrayer på flera nivåer i MongoDB med C#

Du bör använda $[] multipla positionsoperator, jag ska försöka skriva vad du ska använda för koden du har klistrat in:

var baseFilter = Builders<Project>.Filter.Eq("ProjectID": 1);
var update = Builders<Project>.Update.Set("ProjectTasks.$[i].Comments.$[j].CommentDescription", comment.CommentDescription);

var arrayFilters = new List<ArrayFilterDefinition>
{
    /* change the type names here if they have different names, I just guessed */
    new BsonDocumentArrayFilterDefinition<ProjectTask>(new BsonDocument("i.ProjectTaskID", projectTaskID)),
    new BsonDocumentArrayFilterDefinition<Comment>(new BsonDocument("j.CommentId", commentID))
};

var updateOptions = new UpdateOptions { ArrayFilters = arrayFilters };

await Collection.UpdateOneAsync(baseFilter, update, updateOptions);


  1. Hur man organiserar många till många-relationer i MongoDB

  2. Hur jag skrev en Chart-Topping-app på en vecka med Realm och SwiftUI

  3. Bygga REST API:er med EVE

  4. Distribuera ett GraphQL API med MongoDB Atlas och Apollo Server på Koyeb