mongo索引中的顺序
我们在使用mongo中可能并未使用排序,但在查询出来数据自动排好序了,或者我们需要使用mongo的自动排序完成一些功能。
1、当无索引的情况下的查询
db.mongoTest2.find({"valueStr2":"nihao2"});
2、创建索引
db.mongoTest2.ensureIndex({ "valueStr2" : 1, "time" : -1 }, {"name" : "test3_index"}, {"background" : true });
3、使用索引后的排序
db.mongoTest2.find({"valueStr2":"nihao2"});
4、查看mongo的索引使用情况
db.mongoTest2.find({"valueStr2":"nihao2"}).explain("executionStats");
发现刚使用的索引,已经被使用,故虽然查询在刚才的查询语句中使用到time是倒序
5、当改变查询语句,不使用刚刚所采用的mongo语句查看效果,发现并无顺序
db.mongoTest2.find({});
6、查看索引的使用情况
db.mongoTest2.find({}).explain("executionStats");
由上面可以总结得出,当mongo创建好索引的顺序,我们当使用该索引的时候,查询结果会自动根据索引的创建顺序进行排序。故我们在工作中,经常会要求按时间倒序,这个时候可以在自己所要条件 添加time倒序的索引,可以增加mongo查询效果。
还没有评论,来说两句吧...