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

C# MongoDB - Hvordan tilføjer og fjerner man et element til flere indlejrede array-elementer?

Du kan prøve noget som nedenfor i 2.5 driver med 3.6 version.

Finder dokumentet med filter kriterier og update som inkluderer ny positionel identifikator at opdatere flere elementer i array inde i UpdateOne metode.

$[] opdaterer alle Tags arrays for at inkludere nyt element i alle Categories array. Det fungerer som en pladsholder til opdatering af alle elementer i array.

Skub

var filter = Builders<Product>.Filter.Eq("Id", "123");
var update = Builders<Product>.Update.Push("Tags.$[].Categories", "Item 3");
var result = collection.UpdateOne(filter, update);

Træk

var filter = Builders<Product>.Filter.Eq("Id", "123");
var update = Builders<Product>.Update.Pull("Tags.$[].Categories", "Item 3");
var result = collection.UpdateOne(filter, update);

Yderligere oplysninger:

Du kan indstille ArrayFilters muligheder i UpdateOptions til anvendelse af forespørgselskriterier på indlejret array for at kontrollere, hvilke elementer der skal opdateres.

For eksempel for at opdatere alle kategorier i tags-arrayet, hvor hvert tag har Name navn.

var filter = Builders<Product>.Filter.Eq("Id", "123");
var update = Builders<Product>.Update.Push("Tags.$[t].Categories", "Item 3");
var arrayFilters = new List<ArrayFilterDefinition>{ new ArrayFilterDefinition(new BsonDocument("t.Name", "name")) };
var updateOptions = new UpdateOptions({ArrayFilters = arrayFilters});
var result = collection.UpdateOne(filter, update, updateOptions);



  1. Hvad er den bedste måde at gemme billeder til expressjs, mongodb-webstedet?

  2. De 6 bedste Redis-hukommelsesanalyseværktøjer

  3. Kopier database i Mongoose

  4. Transform MongoDB-data på Find