sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB forEach()

V MongoDB, cursor.forEach() metoda iteruje kurzor, aby použila function JavaScriptu ke každému dokumentu od kurzoru.

Syntaxe

Syntaxe vypadá takto:

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

Kde collection je název kolekce, ve které se dokumenty nacházejí.

<function> podpis obsahuje jeden argument, který je předán aktuálnímu dokumentu ke zpracování.

Příklad

Předpokládejme, že máme kolekci nazvanou products který obsahuje následující tři dokumenty:

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

Můžeme použít forEach() ve spojení s metodou find() metodu pro iteraci těchto dokumentů a při použití funkce JavaScript na každý dokument.

Příklad:

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

Výsledek:

Right Handed Screwdriver
Right Blinker
Long Weight

Chyba?

Pokud se zobrazí chyba, jako je tato:

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

Ujistěte se, že používáte find() a ne findOne() .

findOne() metoda vrací skutečný dokument a ne kurzor. Proto forEach() nebude fungovat s findOne() . Také, i když to fungovalo, findOne() vrací pouze jeden dokument, a proto by nebylo nutné procházet více dokumenty.


  1. Jak mohu zkontrolovat, zda pole v MongoDB existuje nebo ne?

  2. Jak vybrat vnořené dokumenty pomocí MongoDB

  3. MongoDB nemůže spustit server:Výchozí modul úložiště 'wiredTiger' není k dispozici s tímto sestavením mongoda

  4. Apache HBase + Apache Hadoop + Xceivers