Sie könnten versuchen, einen Textindex
zu erstellen auf country_lc
, region_lc
und city_lc
Felder:
db.reviews.ensureIndex( { "country_lc": "text" } )
db.reviews.ensureIndex( { "region_lc": "text" } )
db.reviews.ensureIndex( { "city_lc": "text" } )
Textindizes sind ein neues Feature in MongoDB 2.4. Sie wurden hinzugefügt, um die Textsuche nach Zeichenfolgeninhalten in Dokumenten einer Sammlung zu unterstützen. Bitte werfen Sie einen Blick auf die offizielle Dokumentation für Leistungshinweise.
Außerdem können Sie versuchen, die Abfrage als
umzuschreibendb.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 })
(Achtung :Je nach Struktur der Dokumente entspricht dies Ihrer Anfrage oder nicht.)