2012-11-12 5 views
2

J'ai une collection qui contient un certain nombre de documents, chaque document contient un tableau et je veux supprimer la plus petite valeur de ce tableau pour chaque document.Mongodb findAndModify chaque document

Quel serait le moyen le plus efficace pour y parvenir? FindAndModify est-il capable d'effectuer ce type d'opération?

Dois-je utiliser forEach?

+2

Il n'y a pas d'opération orientée ensemble pour cela, donc votre meilleur pari est juste d'itérer sur la collection et mettre à jour le tableau de chaque doc à son tour comme nécessaire. – JohnnyHK

Répondre

3

Les commentaires de JohnnyHK sont corrects. La seule façon de le faire est de find() tous les documents, les mettre à jour individuellement, et les réenregistrer.

2

Ce n'est pas le but de la commande FindAndModify, comme il est dit dans le documentation:

La commande findAndModify modifie et renvoie atomiquement un seul document.

Vous devriez probablement utiliser la méthode update régulière avec le drapeau multi défini sur true. Découvrez le update documentation.

+6

'multi' n'aide que si vous voulez appliquer la même mise à jour à plusieurs documents. – JohnnyHK

Questions connexes