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.