MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB untuk Setiap()

Di MongoDB, cursor.forEach() metode mengulangi kursor untuk menerapkan function JavaScript ke setiap dokumen dari kursor.

Sintaks

Sintaksnya seperti ini:

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

Dimana collection adalah nama koleksi tempat dokumen berada.

<function> tanda tangan menyertakan satu argumen yang diteruskan ke dokumen saat ini untuk diproses.

Contoh

Misalkan kita memiliki koleksi yang disebut products yang berisi tiga dokumen berikut:

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

Kita dapat menggunakan forEach() metode dalam hubungannya dengan find() metode untuk mengulangi dokumen-dokumen itu, sambil menerapkan fungsi JavaScript ke setiap dokumen.

Contoh:

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

Hasil:

Right Handed Screwdriver
Right Blinker
Long Weight

Kesalahan?

Jika Anda mendapatkan kesalahan, seperti ini:

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

Pastikan Anda menggunakan find() dan bukan findOne() .

findOne() metode mengembalikan dokumen yang sebenarnya dan bukan kursor. Oleh karena itu, forEach() tidak akan bekerja dengan findOne() . Juga, meskipun berhasil, findOne() hanya mengembalikan satu dokumen, dan oleh karena itu, tidak perlu mengulangi beberapa dokumen.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hubungan MongoDB:embed atau referensi?

  2. Temukan dan Hitung elemen koleksi dengan Mongoose

  3. Bagaimana cara menghapus dokumen menggunakan Node.js Mongoose?

  4. Pemrograman Database Python dengan MongoDB untuk Pemula

  5. Bagaimana cara memperbarui dokumen Mongo setelah memasukkannya?