为mongodb集合中的find()操作创建索引

时间:2014-11-17 17:57:07

标签: mongodb indexing find

我在mongodb中有一个名为posts的集合,我想用索引进行查询以优化查询。我想做下一个查询:

db.posts.find().sort({ date: -1 })

我的帖子文件如下:

{
_id: 'title',
author: 'Name of the author',
content: 'text text text',
tags: ['tag1', 'tag2'],
comments: ['c1', 'c2'],
date: '10-10-2014'
}

您是否有任何想法创建索引并优化查询?

1 个答案:

答案 0 :(得分:1)

你的.find()函数没有参数,因此查询需要访问集合中的所有文档。

如果你使用索引(到目前为止),它只会引入一些开销。

您的.sort()指令要求对已归档的文档(整个集合)进行排序。 这是一个案例,您可以从索引中受益:

db.posts.ensureIndex({date:1}) (or -1)

在这种情况下,mongodb将读取整个索引,然后单独查找每个文档,但按排序顺序。

当你运行.explain()时,如果看到“BtreeCursor”,则以某种方式使用索引(用于查找,排序或两者)。这是how to read .explain() output