MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB forEach()

В MongoDB, cursor.forEach() метод итерира курсора, за да приложи JavaScript function към всеки документ от курсора.

Синтаксис

Синтаксисът е така:

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

Където collection е името на колекцията, в която се намират документите.

<function> подпис включва единичен аргумент, който се предава на текущия документ за обработка.

Пример

Да предположим, че имаме колекция, наречена products който съдържа следните три документа:

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

Можем да използваме forEach() метод във връзка с find() метод за итерация през тези документи, като същевременно се прилага JavaScript функция към всеки документ.

Пример:

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

Резултат:

Right Handed Screwdriver
Right Blinker
Long Weight

Грешка?

Ако получите грешка, по следния начин:

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

Уверете се, че използвате find() а не findOne() .

findOne() метод връща действителния документ, а не курсор. Следователно, forEach() няма да работи с findOne() . Също така, дори и да работи, findOne() връща само един документ и следователно няма да има нужда от повторение през множество документи.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Основни съображения за вземане на резервно копие на MongoDB

  2. Как да разположите Percona Server за MongoDB за висока наличност

  3. Защо се препоръчва да не затваряте MongoDB връзка никъде в кода на Node.js?

  4. Направете нещо, ако нищо не е намерено с .find() mongoose

  5. Mongo не може да стартира