No MongoDB, o
cursor.forEach() O método itera o cursor para aplicar uma function JavaScript para cada documento a partir do cursor. Sintaxe
A sintaxe fica assim:
db.collection.find().forEach(<function>) Onde
collection é o nome da coleção na qual os documentos residem. A
<function> assinatura inclui um único argumento que é passado para o documento atual para processar. Exemplo
Suponha que tenhamos uma coleção chamada
products que contém os três documentos a seguir:{ "_id" : 1, "product" : "Left Handed Screwdriver" }
{ "_id" : 2, "product" : "Left Blinker" }
{ "_id" : 3, "product" : "Long Weight" } Podemos usar o
forEach() método em conjunto com o find() para percorrer esses documentos, enquanto aplica uma função JavaScript a cada documento. Exemplo:
db.products.find().forEach(
function(p) {
print(
p.product.replace("Left","Right")
);
}
); Resultado:
Right Handed Screwdriver Right Blinker Long Weight
Erro?
Se você receber um erro, como este:
uncaught exception: TypeError: db.products.findOne(...).forEach is not a function : @(shell):1:1
Certifique-se de estar usando
find() e não findOne() . O
findOne() retorna o documento real e não um cursor. Portanto, forEach() não funcionará com findOne() . Além disso, mesmo que funcionasse, findOne() retorna apenas um único documento e, portanto, não haveria necessidade de iterar em vários documentos.