首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >备用mongo聚合查询

备用mongo聚合查询
EN

Stack Overflow用户
提问于 2015-01-22 02:41:07
回答 1查看 652关注 0票数 2

我有一个聚合mongodb查询

代码语言:javascript
复制
db.collection.aggregate([
    {$match: {a: "a1", b: "b1"}},{$group: {...}}, 
    {$sort: {...}}, {$limit: {10}}
])

我在a和b上有一个复合索引,查询速度很快。

但是,当我将匹配更改为

代码语言:javascript
复制
 $match: {$or: [{a: "a1", b: "b1"}, {a: "a2", b: "b2"}]}

查询变得相当慢,而且似乎没有使用任何索引。

有没有办法1)重写查询以使用复合索引(作为单个查询)或2)强制它使用索引?

EN

回答 1

Stack Overflow用户

发布于 2015-01-22 04:47:23

我会尝试在聚合的开头添加一个排序步骤,看看它是否强制使用索引。

代码语言:javascript
复制
db.collection.aggregate([
    {$sort: {a:1, b:1}},
    {$match: {$or: [{a: "a1", b: "b1"}, {a: "a2", b: "b2"}]}},
    ...
])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28074457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档