1、排序
sort()方法:其中 1 为升序排列,而-1是用于降序排列。
db.col.find({},{"title":1,_id:0}).sort({"likes":-1})
如果没有指定sort()方法的排序方式,默认按照文档的升序排列。
2、索引
ensureIndex() 方法来创建索引。
db.col.ensureIndex({"title":1})
1为指定按升序创建索引,-1为按降序创建索引
也可以设置使用多个字段创建索引
db.col.ensureIndex({"title":1,"description":-1})
方法主要可接受参数:
3、聚合管道
聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。
类似于sql语句:select by_user, count(*) from mycol group by by_user
db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
聚合常用表达式:
管道
聚合框架中常用的几个操作:
- $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
- $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
- $limit:用来限制MongoDB聚合管道返回的文档数。
- $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
- $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
- $group:将集合中的文档分组,可用于统计结果。
- $sort:将输入文档排序后输出。
- $geoNear:输出接近某一地理位置的有序文档。
4、复制
MongoDB复制是将数据同步在多个服务器的过程。
复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。
复制还允许您从硬件故障和服务中断中恢复数据。
mongodb的复制至少需要两个节点。
其中一个是主节点,负责处理客户端请求,
其余的都是从节点,负责复制主节点上的数据。
MongoDB副本集设置
5、分片
在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。
6、备份与恢复
mongodump
mongodump -h dbhost -d dbname -o dbdirectory
mongorestore
mongorestore -h dbhost -d dbname --directoryperdb dbdirectory