2016-10-23 1 views
0

J'ai un tableau comme celui-ci sur sous collection utilisateur enter image description hereSupprimer une valeur de tableau du document de collection MongoDB, sailsjs

Comment puis-je supprimer une seule valeur de ce tableau en utilisant du code

aussi J'ai besoin de supprimer tous les post ID de chaque document utilisateur si un post est supprimé, y a-t-il un moyen simple et rapide de supprimer tous les documents?

+0

Pourriez-vous coller le code de vos modèles? Post, utilisateur ... tout ce que vous utilisez dans cette opération? – SkyQ

Répondre

0

Il y a quelques façons simples de le faire si vous utilisez la ligne de flottaison ORM intégrée, et elles sont fondamentalement équivalentes.

La première consiste à exécuter Model.update() et à remplacer le tableau par la nouvelle valeur.

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

L'autre est à 1) trouver l'objet 2) tirer la valeur hors du tableau 3) enregistrer:

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 
    }) 
    } 
}) 

Enfin, à moins que vous utilisez pour une application très simple, je ne peut pas recommander l'utilisation de Waterline ORM avec MongoDB. Épargnez-vous un tas de maux de tête et utilisez Mongoose.