Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में insertMany() और इंडेक्स के साथ बल्क इंसर्ट/अपडेट प्रदर्शन अनुकूलन

MongoDB में उच्च-प्रदर्शन बल्क ऑपरेशन्स

बड़ी मात्रा में डेटा डालते या अपडेट करते समय प्रदर्शन अनुकूलित करने के लिए दो मुख्य तकनीकें हैं:

  1. insertMany(): एक ही नेटवर्क राउंड-ट्रिप में एकाधिक दस्तावेज़ डालता है।
  2. इंडेक्स बनाना (createIndex/ensureIndex): क्वेरी और अपडेट फ़िल्टर को तेज़ करता है।

उदाहरण: insertMany() के साथ बल्क इंसर्ट

> db.demo325.insertMany([
    {_id: 101, Name: "Chris", Age: 23},
    {_id: 102, Name: "David", Age: 24},
    {_id: 103, Name: "Bob", Age: 22}
]);
{ "acknowledged": true, "insertedIds": [101, 102, 103] }

इंडेक्स बनाना

> db.demo325.ensureIndex({Name: 1});
{ "createdCollectionAutomatically": false, "numIndexesBefore": 1, "numIndexesAfter": 2, "ok": 1 }

Name फ़ील्ड पर आरोही (1) इंडेक्स Name आधारित क्वेरीज़ और अपडेट्स को तेज़ करता है। सर्वोत्तम अभ्यास: बल्क इंसर्ट पहले करें, फिर इंडेक्स बनाएं (या पृष्ठभूमि में बनाएं) ताकि इंसर्ट के दौरान इंडेक्स रखरखाव ओवरहेड से बचा जा सके। आधुनिक MongoDB में ensureIndex के बजाय createIndex() का उपयोग करें।

  1. - क्या MongoDB क्वेरी में प्रत्येक इंडेक्स के उपयोग की संख्या को ट्रैक करता है?

    हां, आप MongoDB $indexStats का उपयोग करके क्वेरी में प्रत्येक इंडेक्स के उपयोग की संख्या को ट्रैक कर सकते हैं। MongoDB में इंडेक्स बनाने की क्वेरी: > db.demo508.createIndex({FirstName:1}); { createdCollectionAutomatically : true, numIndexesBefore : 1, numIndexesAfter : 2, ok : 1 } आइए दस्तावेज़ों

  1. - MongoDB में रेगुलर एक्सप्रेशन का उपयोग करते समय प्रदर्शन समस्याओं से बचें

    MongoDB में प्रदर्शन समस्याओं से बचने के लिए, इंडेक्स की अवधारणा का उपयोग करें। इसके लिए, createIndex() का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo531.createIndex({CountryName:text,Name:text}); { createdCollectionAutomatically : true, numIndexesBefore : 1, numIndexesAfter : 2

  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1: