gpt4 book ai didi

Mongodb 正则表达式查询

转载 作者:可可西里 更新时间:2023-11-01 09:56:29 24 4
gpt4 key购买 nike

我使用 Mongodb 存储世界各地的位置列表,记录超过 200 万条。每条记录都是这样的对象:

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

我想执行搜索以找出所有包含“纽约”的“CITIES”,我花了大约 10 秒才得到结果(这在我的网络系统中是 Not Acceptable )。我已经使用 ensureIndex() 函数为“城市”编制了索引,但查询速度仍然很慢。

这是我的查询:

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

我猜问题出在“正则表达式”上。您能否建议我一个解决方案,以便在 2-3 秒内获得查询结果(我在 MySQL 中有超过 4M 条记录,类似的查询只用了 1-2 秒 - 使用索引)。

感谢和问候。

最佳答案

如果不使用正则表达式或 javascript,则无法在 mongodb 中使用包含操作进行搜索(它们很慢,因为没有索引)。

我可以建议以小写形式存储其他城市并通过完全匹配进行搜索。如果您想要“包含”和更快的速度,您应该使用其他一些全文搜索引擎,例如 solrlucene .

关于Mongodb 正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7228018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com