为什么mongodb没有索引我的收藏

时间:2016-09-08 10:52:52

标签: mongodb indexing

我创建了一个集合,只添加了一个名称字段,并尝试应用以下索引。

db.names.createIndex({"name":1})

即使应用索引后,我也会看到以下结果。 db.names.find()

  

{“_ id”:ObjectId(“57d14139eceab001a19f7e82”),“name”:“kkkk”} {   “_id”:ObjectId(“57d1413feceab001a19f7e83”),“name”:“aaaa”} {   “_id”:ObjectId(“57d14144eceab001a19f7e84”),“name”:“zzzz”} {   “_id”:ObjectId(“57d14148eceab001a19f7e85”),“name”:“dddd”} {   “_id”:ObjectId(“57d1414ceceab001a19f7e86”),“name”:“rrrrr”}

我在这里缺少什么。

2 个答案:

答案 0 :(得分:3)

...可汗

构建索引的方式是正确的,但是在名称上构建升序索引不会按升序返回结果。

如果您需要按名称排序结果,则必须使用

{db.names.find()排序({名称:1})}

构建索引时会发生的情况是,当您搜索数据时,Mongo进程会以有序的方式在后台执行搜索,以获得更快的结果。

请注意:如果您只想按排序顺序查看输出。你甚至不需要索引。

答案 1 :(得分:0)

通过运行find()命令,您无法查看是否已成功创建索引(除非有相当的速度性能)。

相反,使用db.names.getIndexes()查看是否已创建索引(如果您在后台运行索引,可能需要一些时间才会显示索引索引列表)