MongoDB में, cursor.forEach()
विधि कर्सर को जावास्क्रिप्ट 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()
. के संयोजन में विधि प्रत्येक दस्तावेज़ में जावास्क्रिप्ट फ़ंक्शन लागू करते समय, उन दस्तावेज़ों के माध्यम से पुनरावृति करने की विधि।
उदाहरण:
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()
केवल एक दस्तावेज़ लौटाता है, और इसलिए, एकाधिक दस्तावेज़ों के माध्यम से पुनरावृति करने की कोई आवश्यकता नहीं होगी।