MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

प्रत्येक के लिए मोंगोडीबी ()

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB एटलस की शीर्ष 10 विशेषताएं

  2. mongoose.js क्वेरीज़ को समकालिक रूप से चलाना

  3. MongoDB में एक संग्रह बनाएं

  4. MongoDB और C# ड्राइवर का उपयोग करके उप दस्तावेज़ संग्रह को कैसे क्वेरी करें?

  5. एसएनएमपी के साथ क्लस्टर कंट्रोल को एकीकृत करना - अवधारणा का एक प्रमाण:भाग एक