查询和排序,我的mongo索引应该是什么样的

时间:2016-08-31 00:00:54

标签: mongodb mongodb-query

我正在尝试在我们的mongo集合上创建正确的索引,但我不清楚索引,查询和排序如何相互作用。

如果我有以下内容:

db.stuff.find({"userId":"10"}).sort({"created":1});

我应该在userId上创建一个复合索引吗?或者,我应该在userId上有两个单独的索引吗?另一个在create?

1 个答案:

答案 0 :(得分:2)

MongoDB cannot use index intersection支持像你这样的查询,查询条件和排序需要单独的索引。

因此,您希望使用compound index,首先userIdcreated秒,以便所有生成的文档都在索引的一个连续范围内:

db.stuff.createIndex({userId: 1, created: 1})