In MongoDB, il cursor.forEach() il metodo scorre il cursore per applicare una function JavaScript a ciascun documento dal cursore.
Sintassi
La sintassi è questa:
db.collection.find().forEach(<function>)
Dove collection è il nome della collezione in cui risiedono i documenti.
Il <function> signature include un singolo argomento che viene passato al documento corrente da elaborare.
Esempio
Supponiamo di avere una collezione chiamata products che contiene i seguenti tre documenti:
{ "_id" : 1, "product" : "Left Handed Screwdriver" }
{ "_id" : 2, "product" : "Left Blinker" }
{ "_id" : 3, "product" : "Long Weight" }
Possiamo usare forEach() metodo insieme a find() metodo per scorrere quei documenti, applicando una funzione JavaScript a ciascun documento.
Esempio:
db.products.find().forEach(
function(p) {
print(
p.product.replace("Left","Right")
);
}
); Risultato:
Right Handed Screwdriver Right Blinker Long Weight
Errore?
Se ricevi un errore, come questo:
uncaught exception: TypeError: db.products.findOne(...).forEach is not a function : @(shell):1:1
Assicurati di utilizzare find() e non findOne() .
Il findOne() il metodo restituisce il documento effettivo e non un cursore. Pertanto, forEach() non funzionerà con findOne() . Inoltre, anche se ha funzionato, findOne() restituisce solo un singolo documento e, pertanto, non sarebbe necessario scorrere più documenti.