MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB forEach()


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.