Dans MongoDB, le cursor.forEach() la méthode itère le curseur pour appliquer une function JavaScript à chaque document à partir du curseur.
Syntaxe
La syntaxe ressemble à ceci :
db.collection.find().forEach(<function>)
Où collection est le nom de la collection dans laquelle résident les documents.
Le <function> signature inclut un seul argument qui transmet le document actuel à traiter.
Exemple
Supposons que nous ayons une collection appelée products qui contient les trois documents suivants :
{ "_id" : 1, "product" : "Left Handed Screwdriver" }
{ "_id" : 2, "product" : "Left Blinker" }
{ "_id" : 3, "product" : "Long Weight" }
Nous pouvons utiliser le forEach() méthode en conjonction avec find() pour parcourir ces documents, tout en appliquant une fonction JavaScript à chaque document.
Exemple :
db.products.find().forEach(
function(p) {
print(
p.product.replace("Left","Right")
);
}
); Résultat :
Right Handed Screwdriver Right Blinker Long Weight
Erreur ?
Si vous obtenez une erreur, comme celle-ci :
uncaught exception: TypeError: db.products.findOne(...).forEach is not a function : @(shell):1:1
Assurez-vous que vous utilisez find() et non findOne() .
Le findOne() La méthode renvoie le document réel et non un curseur. Par conséquent, forEach() ne fonctionnera pas avec findOne() . De plus, même si cela fonctionnait, findOne() ne renvoie qu'un seul document et, par conséquent, il n'est pas nécessaire de parcourir plusieurs documents.