我在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'
}
您是否有任何想法创建索引并优化查询?
答案 0 :(得分:1)
你的.find()函数没有参数,因此查询需要访问集合中的所有文档。
如果你使用索引(到目前为止),它只会引入一些开销。
您的.sort()指令要求对已归档的文档(整个集合)进行排序。 这是一个案例,您可以从索引中受益:
db.posts.ensureIndex({date:1}) (or -1)
在这种情况下,mongodb将读取整个索引,然后单独查找每个文档,但按排序顺序。
当你运行.explain()时,如果看到“BtreeCursor”,则以某种方式使用索引(用于查找,排序或两者)。这是how to read .explain() output