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.