文章目录
四、聚合和管道
1、聚合aggregate
db.collection.aggregate({管道:{表达式}})
2、常用管道
表达式:
2.1、$group
$group by all:将集合中所有文档分为一组
注意:
- $group对应字典有几个字段,结果中就有几个键
- 分组依据需要放到
_id
后面 - 取不同的字段的值需要使用$
- 取字典嵌套的字典中的值的时候需要
_id.xxx
- 能够同时按照多个键进行分组
{$group:{_id:{属性:"$属性", 属性:"$属性"}}}
2.2、$match
2.3、$project
2.4、$sort
2.5、$limit 和 $skip
2.6、$unwind
五、创建索引
建立索引的用法:
db.collection.ensureIndex({属性:1}),1表示升序,-1表示降序
db.collection.find().explain('executionStats') #查看时间
注意:
1、默认情况下索引字段值是可以相同的
2、创建唯一索引(索引的值是唯一的)
db.collection.ensureIndex({属性:1}, {'unique':true})
3、建立联合索引(什么时候需要联合索引)
db.collection.ensureIndex(属性:1, 属性:1)
4、查看当前集合的所有索引
db.collection.getIndexes()
5、删除索引
db.collection.dropIndex('索引名称')