Я использую Mongodb для хранения списка местоположений по всему миру, с более чем 2 миллионами записей. Каждая запись представляет собой такой объект:
{ "_id" : ObjectId("4e5b339feee76320ab26f930"), "city" : "New York", "longitude" : -87.2008333, "latitude" : 30.8383333, "country_code" : "US", "country_name" : "United States" }
Я хочу выполнить поиск, чтобы получить все "CITIES", содержащие "New York", мне потребовалось около 10 секунд, чтобы получить результат (это недопустимо в моей веб-системе). Я проиндексировал «город» с помощью функции sureIndex (), но запрос все еще медленный.
Вот мой запрос:
db.locations.find({"city": { "$regex": "(New York)", "$options": 'i' }})
Полагаю, проблема в "регулярном выражении". Можете ли вы предложить мне решение для этого, чтобы получить результат запроса в течение 2-3 секунд (у меня более 4 миллионов записей в MySQL, аналогичный запрос занял у меня всего 1-2 секунды - с индексами).
Спасибо и всего наилучшего.