MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB forEach ()

Trong MongoDB, cursor.forEach() phương pháp lặp lại con trỏ để áp dụng một function trong JavaScript đến từng tài liệu từ con trỏ.

Cú pháp

Cú pháp như sau:

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

Nơi collection là tên của bộ sưu tập chứa các tài liệu.

<function> chữ ký bao gồm một đối số duy nhất được chuyển vào tài liệu hiện tại để xử lý.

Ví dụ

Giả sử chúng ta có một bộ sưu tập được gọi là products chứa ba tài liệu sau:

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

Chúng ta có thể sử dụng forEach() kết hợp với find() để lặp lại các tài liệu đó trong khi áp dụng một hàm JavaScript cho mỗi tài liệu.

Ví dụ:

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

Kết quả:

Right Handed Screwdriver
Right Blinker
Long Weight

Lỗi?

Nếu bạn gặp lỗi, như sau:

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

Đảm bảo rằng bạn đang sử dụng find() chứ không phải findOne() .

findOne() phương thức trả về tài liệu thực chứ không phải con trỏ. Do đó, forEach() sẽ không hoạt động với findOne() . Ngoài ra, ngay cả khi nó hoạt động, findOne() chỉ trả về một tài liệu duy nhất và do đó, sẽ không cần phải lặp lại nhiều tài liệu.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để tạo ngày truy vấn trong mongodb bằng pymongo?

  2. Mongoose Giá trị duy nhất trong mảng đối tượng lồng nhau

  3. Dump Bộ sưu tập Mongo sang định dạng JSON

  4. Hiệu suất MongoDB - có nhiều cơ sở dữ liệu

  5. Mongo tìm các bản sao cho các mục nhập cho hai hoặc nhiều trường