आप एक पाठ अनुक्रमणिका
बनाने का प्रयास कर सकते हैं country_lc
. पर , region_lc
और city_lc
फ़ील्ड:
db.reviews.ensureIndex( { "country_lc": "text" } )
db.reviews.ensureIndex( { "region_lc": "text" } )
db.reviews.ensureIndex( { "city_lc": "text" } )
पाठ सूचकांक MongoDB 2.4 में एक नई सुविधा है। उन्हें संग्रह के दस्तावेज़ों में स्ट्रिंग सामग्री की टेक्स्ट खोज का समर्थन करने के लिए जोड़ा गया था। कृपया प्रदर्शन के संकेतों के लिए आधिकारिक दस्तावेज़ीकरण पर एक नज़र डालें।
इसके अलावा, आप क्वेरी को
. के रूप में फिर से लिखने का प्रयास कर सकते हैंdb.location.find(
{ "docType": {"$in": [ "country", "region", "city" ]},
"$or": [
{ "country_lc": /^unit/ },
{ "region_lc": /^unit/ },
{ "city_lc": /^unit/ },
]
},
{ "country": 1, "region": 1, "city": 1, "docType" :1 }
).sort({ "country_lc" :1, "region_lc": 1, "city_lc":1 })
(सावधानी :यह दस्तावेज़ों की संरचना के आधार पर आपकी क्वेरी के बराबर है या नहीं है।)