【发布时间】:2016-09-14 06:05:02
【问题描述】:
我的 MongoDB 查询有问题,我需要在我的字段内搜索,并且只从单词的开头搜索,而不是 100% 匹配的单词。
在我遇到这个问题之前,我使用$regex,这里没问题,唯一的问题是它比$text 搜索慢很多,所以现在我希望那里的人可以帮助我。
这是我今天的查询
db.getCollection('product').aggregate([
{$match : {$text: { $search : "\"samsung\" \"evo\" } } },
{$project: { _id: 0, Category: 1 } },
{$unwind: "$Category" },
{$group: { _id: '$Category', count: { $sum: 1 } } },
{$project: { _id: 0,Category: "$_id", count: 1 } },
{$sort: { 'count': -1 } },
{$limit: 5}
])
我已经尝试过,正如我之前所说的,我之前使用过 $regex,但这里它不使用任何类型的索引,然后 MongoDB 中的查询非常慢,并且所有内容都停滞不前,就像每个 0.4 秒对 0.03 秒查询。
所以如果有一个可以向我解释发生了什么以及解决方案是如何以及为什么它会对我有很大帮助。
现在“匹配 100% 三星和 evo”这个词我想要的是我可以像 sam 和 evo 一样输入然后它找到那里有 evo 的所有内容并以 sam 开头,这将使用户的搜索速度更快。
感谢所有帮助。
【问题讨论】:
标签: mongodb mongodb-query