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

MongoDB में संपूर्ण ऐरे पर मल्टी-की इंडेक्सिंग

MongoDB में संपूर्ण ऐरे पर मल्टी-की इंडेक्सिंग

ऐरे फील्ड्स पर क्वेरी के लिए मल्टी-की इंडेक्स का उपयोग।

कलेक्शन बनाना

> db.demo277.insertOne({"details":[{"FirstName":"John"}]});
{ "acknowledged": true, "insertedId": ObjectId("5e48fb21dd099650a5401a52") }
> db.demo277.insertOne({"details":[{"FirstName":"David"}]});
{ "acknowledged": true, "insertedId": ObjectId("5e48fb27dd099650a5401a53") }
> db.demo277.insertOne({"details":[{"FirstName":"Chris"}]});
{ "acknowledged": true, "insertedId": ObjectId("5e48fb2bdd099650a5401a54") }

सभी डॉक्यूमेंट्स

> db.demo277.find();

ऐरे ऑब्जेक्ट फील्ड पर क्वेरी

> db.demo277.find({"details":{FirstName:"David"}});

परिणाम


व्याख्या

  • मल्टी-की इंडेक्स: जब आप ऐरे फील्ड पर इंडेक्स बनाते हैं, तो MongoDB स्वचालित रूप से मल्टी-की इंडेक्स बनाता है
  • क्वेरी सिंटैक्स: {"details": {FirstName: "David"}} - ऐरे के किसी भी तत्व में FirstName: "David" खोजता है
  • पूर्ण डॉक्यूमेंट स्कैन: टिप्पणी में उल्लेख है "It does scan full documents" लेकिन इंडेक्स होने पर यह इंडेक्स का उपयोग करेगा

स्पष्ट इंडेक्स बनाना

// ऐरे फील्ड के नेस्टेड फील्ड पर इंडेक्स
db.demo277.createIndex({"details.FirstName": 1})

यह इंडेक्स ऐरे के प्रत्येक तत्व के FirstName के लिए इंडेक्स एंट्री बनाता है, जिससे ऐसी क्वेरी तेज होती हैं।

  1. - MongoDB में Array Elements के साथ Specific Document Fetch करना

    MongoDB में किसी specific document को fetch करने के लिए find() मेथड में dot notation का उपयोग करें। आइए documents के साथ एक collection बनाते हैं: > db.demo672.insertOne({Brand:[{CategoryName:Mobile,Name:Oppo}]}); { acknowledged : true, insertedId : ObjectId(5ea3ea9b04263e90dac943e5) } > db.dem

  1. - MongoDB क्वेरी: कलेक्शन से पूरा ऐरे हटाएं

    कलेक्शन से पूरा ऐरे हटाने के लिए, MongoDB में $unset का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo609.insertOne({ListOfSubject:[MySQL,MongoDB]}); { acknowledged : true, insertedId : ObjectId(5e974695f57d0dc0b182d62c) } > db.demo609.insertOne({ListOfSubject:[Java]}); { a

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,