【发布时间】:2011-11-05 21:08:20
【问题描述】:
我使用 Mongodb 存储世界各地的位置列表,记录超过 200 万条。每条记录都是这样的对象:
{ "_id" : ObjectId("4e5b339feee76320ab26f930"), "city" : "New York", "longitude" : -87.2008333, "latitude" : 30.8383333, "country_code" : "US", "country_name" : "United States" }
我想执行搜索以找出所有包含“纽约”的“CITIES”,我花了大约 10 秒才得到结果(这在我的网络系统中是不可接受的)。我已经使用 ensureIndex() 函数对“城市”进行了索引,但是查询仍然很慢。
这是我的查询:
db.locations.find({"city": { "$regex": "(New York)", "$options": 'i' }})
我猜问题是“正则表达式”。你能建议我在 2-3 秒内得到查询结果的解决方案吗(我在 MySQL 中有超过 4M 条记录,类似的查询只花了我 1-2 秒 - 有索引)。
感谢和问候。
【问题讨论】: