Mongodb requête par expression régulière

J'utilise Mongodb pour stocker la liste des endroits à travers le monde, avec plus de 2M de dossiers. Chaque enregistrement est un objet comme ceci:

{ "_id" : ObjectId("4e5b339feee76320ab26f930"), "city" : "New York", "longitude" : -87.2008333, "latitude" : 30.8383333, "country_code" : "US", "country_name" : "United States" }

Je veux effectuer la recherche pour obtenir toutes les "VILLES" contenir "New York", il m'a fallu environ 10 secondes pour avoir le résultat (il est inacceptable dans mon système web). J'ai indexation de la "ville" à l'aide de ensureIndex() de la fonction, mais la requête est toujours lent.

Voici ma requête:

db.locations.find({"city": { "$regex": "(New York)", "$options": 'i' }})

Je crois que le problème est la "expression régulière". Pouvez-vous me suggérer une solution pour obtenir le résultat de la requête dans un délai de 2-3 secondes (j'ai plus de 4M enregistrements dans MySQL, la requête similaire m'a fallu seulement 1 à 2 secondes - avec index).

Merci et salutations.

OriginalL'auteur ofecrpnr | 2011-08-29