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

सिंगल और कंपाउंड इंडेक्स के संबंध में MongoDB कैसे खोज ()। सॉर्ट () प्रश्नों का इलाज करता है?

अगर मुझे आपकी बात समझ में आती है, तो इससे मदद मिल सकती है:

मान लें कि आपके पास नमूने के लिए ये दस्तावेज़ हैं

{
    field1 : 1,
    field2 : 2,
},
{
    field1 : 2,
    field2 : 3,
},
{
    field1 : 1,
    field2 : 4,
}

चरण 1:आपके पास केवल file1 . के लिए अनुक्रमणिका है (इंडेक्स का नाम field1_1 )}:प्रदर्शन करें:db.test3.find({field1:1}).sort({field2:1})

मोंगो field1_1 . का उपयोग करता है दस्तावेज़ में खोजने के लिए अनुक्रमणिका। .explain() का परिणाम है:

"cursor" : "BtreeCursor field1_1",
"isMultiKey" : false,
"n" : 2,
"nscannedObjects" : 2,
"nscanned" : 2,

चरण 2:अपना कंपाउंड इंडेक्स जोड़ें, इसे field1_1_field2_1 . नाम दें , अब आपके पास फ़ील्ड 1 के लिए 2 अनुक्रमणिका हैं।

प्रदर्शन find().sort() प्रश्न, आपके पास होगा

"cursor" : "BtreeCursor field1_1_field2_1",
"isMultiKey" : false,
"n" : 2,
"nscannedObjects" : 2,
"nscanned" : 2,

कंकोल्यूशन:

यदि आप db.test3.find({field1:1}).sort({field2:1}) का उपयोग करते हैं , मोंगो field1_1_field2_1 . का उपयोग करेगा सूचकांक।

यदि आप db.test3.find({field1:1}) . का उपयोग करते हैं , मोंगो field1_1 . का उपयोग करेगा सूचकांक।

मैं आपका मामला, यदि आपके पास केवल field1_1_field2_1 . है अनुक्रमणिका और आप प्रदर्शन कर रहे हैं db.test3.find({field1:1}) , मोंगो field1_1_field2_1 . का उपयोग करेगा सूचकांक भी।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. PHP से एक MongoDB दिनांक प्रिंट करना

  2. अकाउंट बनाकर मोंगोडब कैसे चलाएं

  3. ट्वीपी के साथ ट्वीट लाने में त्रुटि

  4. मोंगो डीबी:नेस्टेड सरणी मान खोजें

  5. एक तिथि सीमा पर MongoDb अद्वितीय बाधाएं