我正在尝试在我们的mongo集合上创建正确的索引,但我不清楚索引,查询和排序如何相互作用。
如果我有以下内容:
db.stuff.find({"userId":"10"}).sort({"created":1});
我应该在userId上创建一个复合索引吗?或者,我应该在userId上有两个单独的索引吗?另一个在create?
上答案 0 :(得分:2)
MongoDB cannot use index intersection支持像你这样的查询,查询条件和排序需要单独的索引。
因此,您希望使用compound index,首先userId
和created
秒,以便所有生成的文档都在索引的一个连续范围内:
db.stuff.createIndex({userId: 1, created: 1})