MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB forEach()

In MongoDB der cursor.forEach() -Methode iteriert den Cursor, um eine JavaScript-function anzuwenden zu jedem Dokument vom Cursor.

Syntax

Die Syntax lautet wie folgt:

db.collection.find().forEach(<function>)

Wobei collection ist der Name der Sammlung, in der sich die Dokumente befinden.

Die <function> Signatur enthält ein einzelnes Argument, das dem aktuellen Dokument zur Verarbeitung übergeben wird.

Beispiel

Angenommen, wir haben eine Sammlung namens products das die folgenden drei Dokumente enthält:

{ "_id" : 1, "product" : "Left Handed Screwdriver" }
{ "_id" : 2, "product" : "Left Blinker" }
{ "_id" : 3, "product" : "Long Weight" }

Wir können den forEach() verwenden Methode in Verbindung mit find() Methode, um diese Dokumente zu durchlaufen, während eine JavaScript-Funktion auf jedes Dokument angewendet wird.

Beispiel:

db.products.find().forEach(
  function(p) {
    print(
      p.product.replace("Left","Right")
      );
  }
);

Ergebnis:

Right Handed Screwdriver
Right Blinker
Long Weight

Fehler?

Wenn Sie eine Fehlermeldung erhalten, sehen Sie etwa so aus:

uncaught exception: TypeError: db.products.findOne(...).forEach is not a function :
@(shell):1:1

Stellen Sie sicher, dass Sie find() verwenden und nicht findOne() .

Das findOne() -Methode gibt das eigentliche Dokument und keinen Cursor zurück. Daher forEach() funktioniert nicht mit findOne() . Auch, selbst wenn es funktioniert hat, findOne() gibt nur ein einzelnes Dokument zurück, und daher wäre es nicht erforderlich, mehrere Dokumente zu durchlaufen.