一、排序
db.collectionname.find().sort({"key1":-1, "key":1});
这里的1代表升序,-1代表降序。
如:对所有人按年龄升序排序
降序排序
二、索引
索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。
如: 我们查询张三的时候 db.singer.find({"name":"zhangsan"})
如果没有对name字段建立索引,数据库在查询的时候会扫描所有的数据,如果数据量小的时候,感觉不出来速度慢,
当数据量越来越多的时候,就会越来越慢。
这个时候如果给name建立一个索引,查询速度就会加快。
MangoDB使用ensureIndex()方法来创建索引。
ensureIndex()方法基本语法格式如下所示:
>db.集合名.ensureIndex({KEY:1})
对name字段建立一个索引如下:
可视化工具里可以看到索引
语法中key值为你要创建的索引字段,1为指定按升序创建索引,如果你想要按降序来创建索引指定为-1即可。
实例:
db.col.ensureIndex("title":1,"description":-1})
三、限制输出
1) limit() 限制输出
db.集合名.find().limit(n);
例如:找出年龄小的3个歌手
相当于SQL语句:
select * from singer order by age asc limit 3;
2) skip() 跳过n条
db.集合名.skip();
例如:找出年龄除最小的三个以外的2个歌手(跳过最小的3条,输出两条)
注意: limit 和 skip 通常用于分页。