加速mongodb中的多条件查询

Posted

技术标签:

【中文标题】加速mongodb中的多条件查询【英文标题】:speedup multiple condition query in mongodb 【发布时间】:2015-06-03 12:43:13 【问题描述】:

我有一个大数据集(~50G),每个文档的结构如下。


   'docid':0x12345,
   'text':'this is a text example',
    'datetime':datetime.datetime(2012,12,1,12,00,00),

我想查询与“文本”字段中的某些单词和时间跨度中的“日期时间”匹配的文档。

所以我为“文本”和“日期时间”字段创建索引,并将查询运行为:

db.test.find("$text":"$search":"canon",'datetime': '$gte': start, '$lt': end,"score":"$meta":"textScore")

但是我发现查询非常非常慢,不知道什么时候可以得到结果。

有什么问题吗?以及如何加快查询速度? 提前致谢。

【问题讨论】:

【参考方案1】:

有几点需要注意: 1. 您不需要在单词 canon ('"canon"') 两边同时加上单引号和双引号。只需“佳能”就足够了。 2. "takentime" 是您文档中的关键吗?还是您的意思是日期时间?输入一个不存在的键会大大降低查询速度,因为它会导致 mongodb 搜索整个集合

【讨论】:

是的,它们是我的问题中的一些错别字。感谢您的细心。 不客气。 MongoDB 可能很棘手,因为当您在字段名称中有错字时它不会出错

以上是关于加速mongodb中的多条件查询的主要内容,如果未能解决你的问题,请参考以下文章

$match mongodb聚合框架_mongoose中的多条件[重复]

用mongodb的mapreduce可以加两个条件吗

mybatis中的多条件查询

php中的多条件查询

php中的多条件查询

python mongoDB 模糊查询(多条件)