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

为什么mongodb没有为我的收藏编制索引,mongodb,indexing,Mongodb,Indexing,我创建了一个集合,只添加了一个名称字段,并尝试应用以下索引 db.names.createIndex({"name":1}) 即使应用了索引,我也看到了以下结果。 db.names.find() {“_id”:ObjectId(“57d14139eceab001a19f7e82”),“name”:“kkkk”}{ “_id”:ObjectId(“57d1413feceab001a19f7e83”),“名称”:“aaaa”}{ “id”:ObjectId(“57d14144eceab001a19

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

db.names.createIndex({"name":1})
即使应用了索引,我也看到了以下结果。 db.names.find()

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


我在这里遗漏了什么。

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


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

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

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

Khans

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

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

{db.names.find().sort({names:1})}

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

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

Khans

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

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

{db.names.find().sort({names:1})}

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


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

这是问题中的一个输入错误,我修正了它。我只使用字段“name”创建了索引,但它仍然不起作用。我正在mongo 3.2上尝试运行
db.names.getIndexes()
,查看是否已创建索引。是的,索引已创建……那么问题出在哪里?否,您需要提供
sort()
对结果集进行排序。索引排序是为了让MongoDB知道如何组织索引。看:这是问题中的一个输入错误,我修正了它。我只使用字段“name”创建了索引,但它仍然不起作用。我正在mongo 3.2上尝试运行
db.names.getIndexes()
,查看是否已创建索引。是的,索引已创建……那么问题出在哪里?否,您需要提供
sort()
对结果集进行排序。索引排序是为了让MongoDB知道如何组织索引。请参阅:您是否仅通过添加索引来期望排序结果?您是否仅通过添加索引来期望排序结果?