J'utilise Mongodb pour stocker la liste des emplacements dans le monde, avec plus de 2M enregistrements. Chaque enregistrement est un objet comme celui-ci:Requête Mongodb par expression régulière
{ "_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 » contiennent « New York », il m'a fallu environ 10 secondes pour avoir le résultat (il est inacceptable dans mon système web). J'ai indexé la "ville" en utilisant la fonction ensureIndex(), mais la requête est toujours lente.
Voici ma question:
db.locations.find({"city": { "$regex": "(New York)", "$options": 'i' }})
Je suppose 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 les 2-3 secondes (j'ai plus de 4M enregistrements dans MySQL, la requête similaire m'a pris seulement 1-2 secondes - avec des index).
Merci et salutations.
de Grande réponse! Merci! – ofecrpnr
@ofecrpnr: vous êtes les bienvenus. –