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 के लिए इंडेक्स एंट्री बनाता है, जिससे ऐसी क्वेरी तेज होती हैं।