J'ai une collection avec quelques mauvaises données. Je voudrais supprimer en bloc ces données en fonction d'une requête. C'est facile dans le shell mongo car db.collection.remove()
vous permet de spécifier l'option justOne
. Y at-il un moyen de le faire dans le pilote node.js? findAndRemove
semble supprimer seulement 1 document et n'a aucune option pour le faire en vrac?NodeJS bulk remove documents mongodb
db.collection(collection_name, function(err, collection){
collection.findAndRemove({type: 'LUXURY'}, function(err, result){
// result is only a single document
console.log(result._id.toString());
});
});
Je sais une alternative à cela est de find()
tous les documents qui satisfont ma requête et créer manuellement un BulkOp en utilisant initializeUnorderedBulkOp
et le remplir par itérer sur les résultats de ma trouvaille, mais je pense qu'il devrait y avoir un moyen plus facile .
Avez-vous déjà consulté mongoose? Son super complet et aurait la suppression que vous recherchez. Je l'ai utilisé sur plusieurs sites et c'est génial. http://mongoosejs.com/ –
J'en avais entendu parler, mais je n'ai pas pensé à l'essayer. Je vais regarder dedans. Recommandez-vous de migrer tout mon code pour utiliser mongoose ou est-ce une pratique courante d'entrelacer le driver mongo avec mongoose? – Comart
Le code testé est l'or. Je ne migrerais pas partout si son fonctionnement. Je commencerais à l'introduire dans de nouvelles fonctionnalités et à migrer dessus car cela a du sens mais pas comme une règle, d'autant plus que la logique/syntaxe est si similaire. J'aime vraiment Mongoose, je ne peux pas en dire assez et je l'utilise sur plusieurs projets. –