2012-04-11 5 views
4

Verwenden von Node.js, mongoDB, mongoose:Mungo: Wie kann ich Dokumente mit Array-Werten aktualisieren, die einem Objekt im Array entsprechen?

Ich habe eine db-Sammlung whos Datensätze haben Feld von Arrays von Zeichenfolgen.

Ich muss Elemente in den Arrays aller Datensätze entfernen, die einer übergebenen Zeichenfolge entsprechen.

Dies beinhaltet die Suche nach allen Datensätzen, die ein Array enthalten, das eine Übereinstimmung enthält, ein Element aus dem Array spleißt und Datensätze in db speichert.

Ich bin schwer zu erarbeiten, wie dies zu tun ist.

Antwort

4

Sie sollten dies mit einem $pull oder einem $pullAll (wie hier beschrieben: www.mongodb.org/display/DOCS/Updating#Updating-%24pull) tun können. Zum Beispiel in der Schale:

> db.coll.update({}, {$pull : {arrField : passedString}}, false, true); 

Dies aktualisiert alle Dokumente, die von dem passedString vom arrField Array ziehen, wenn es vorhanden ist. (false ohne Upsert, true, um mehrere Dokumente zu aktualisieren.)

3

Sie so etwas wie

können
Model.update({}, {$pull : {arrField : passedString}}, function(){}) 
Verwandte Themen