2016-10-23 1 views
0

ich unter Benutzer Sammlung ein Array habe enter image description hereentfernen, wie dies auf einen Array-Wert von mongodb Sammlung Dokument, sailsjs

Wie ich Code sails.js einen einzelnen Wert aus diesem Array kann

auch mithilfe entfernen Ich muss alle Post-ID aus jedem Benutzerdokument entfernen, wenn ein Beitrag gelöscht wird, gibt es eine einfachste und schnellste Möglichkeit, aus allen Dokumenten zu entfernen?

+0

Können Sie Ihre Modelle Code einfügen? Post, Benutzer ... alles, was Sie in diesem Vorgang verwenden? – SkyQ

Antwort

0

Es gibt ein paar einfache Möglichkeiten, es zu tun, wenn Sie die integrierte ORM "Waterline" verwenden, und sie sind im Grunde gleichwertig.

Die erste besteht darin, Model.update() auszuführen und das Array mit dem neuen Wert zu überschreiben.

Model.update(id, { likes : [/* new array value */] }).then(...) 

Die andere ist zu 1) finden, das Objekt 2) ziehen Sie den Wert aus dem Array 3) speichern:

Model.findOne(id, function(err, document){ 
    if(err) // handle err case 
    else { 
    document.likes = document.likes.filter(value => value !== 'stringToRemove') 
    document.save(function(err, saved){ 
     ... // do more stuff 
    }) 
    } 
}) 

Schließlich, wenn Sie es für eine sehr einfache Anwendung verwenden, ich Ich kann die Verwendung von Waterline ORM mit MongoDB nicht empfehlen. Sparen Sie sich einen Haufen Kopfschmerzen und verwenden Sie Mongoose.

Verwandte Themen