अगर मुझे आपकी बात समझ में आती है, तो इससे मदद मिल सकती है:
मान लें कि आपके पास नमूने के लिए ये दस्तावेज़ हैं
{
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
. का उपयोग करेगा सूचकांक भी।