为什么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知道如何组织索引。请参阅:您是否仅通过添加索引来期望排序结果?您是否仅通过添加索引来期望排序结果?