आप इसे विशेष रूप से नहीं कर सकते, आप कुंजी के मान पर अनुक्रमणित नहीं कर सकते।
एक समाधान
हालांकि, आप किसी ऐरे में आइटम्स को इंडेक्स कर सकते हैं।
आइए मान लें कि आपका डेटा इस तरह दिखता है:
items:
[
{ Key: "Name", Value: "Peter", Type:String },
{ Key: "Age", Value: "18", Type:int },
{ Key: "City", Value: "San Jose", Type:String },
...30 to 40 items.
]
items.Key
. पर एक इंडेक्स बनाने के लिए आप निम्न कार्य करेंगे :
db.foo.ensureIndex( { 'items.Key' } )
जब आप निम्न कार्य करते हैं तो आप अनुक्रमणिका का उपयोग करेंगे:
db.foo.find( { 'items.Key' : "City", 'items.value' : "San Jose" } )
यह खोज को केवल उन आइटम तक सीमित कर देगा जिनमें Key = "City"
. है . अगर यही सब कुछ है, तो शायद यह मदद नहीं करेगा।
वैकल्पिक समाधान
items
क्यों है एक सारणी? क्या आप डेटा की संरचना इस तरह नहीं कर सकते:
items:
{
"Name" : { Value: "Peter", Type:String },
"Age" : { Value: "18", Type:int },
"City" : { Value: "San Jose", Type:String },
...30 to 40 items.
}
अब आप items.City.Value
. पर इंडेक्स कर सकते हैं , जिसे आप पहली बार ढूंढ रहे थे। यह डेटा संरचना को भी काफी छोटा बनाता है।
अपने डेटा की प्रकृति के आधार पर, आप स्पार्स इंडेक्स को भी देखना चाहेंगे। अपनी अनुक्रमणिका के आकार को नियंत्रित करने में सहायता के लिए।