MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann ich verschachtelte Array-Elemente in einem Mongodb-Dokument mit dem c#-Treiber löschen

Sie rufen die Methode Pull(string name, MongoDB.Bson.BsonValue value) auf und laut der Dokumentation ist es

und Sie geben { "Identifier", productId } an als Wert. Ich vermute, dass Mongo das exakt nicht findet Wert.

Versuchen Sie, die zweite Überladung von Pull zu verwenden mit Abfragebedingung statt exaktem Wert

var update = Update.Pull("Products", Query.EQ("Identifier", productId));

AKTUALISIEREN

Da Sie Category erwähnen -Entität, sodass ich vorschlagen kann, Lambda anstelle von Query.EQ zu verwenden :

var pull = Update<Category>.Pull(x => x.Products, builder =>
builder.Where(q => q.Identifier == productId));