接着上一章节,继续来学习MDB的基本命令。
MDB使用sort进行排序,指定KEY,1为升序,-1为降序
终于来到最关心的命令和环节--索引,索引是提升性能关键,也是基础。
使用createIndex创建索引,示例如下:
还可同时指定多个字段组合索引,类似于MYSQL中的聚合索引。
createIndex(keys,options)
options如下:
需要注意的几个命令:
创建索引时,会阻塞其他数据库的操作,因此这个最好是指定一下为true
在类型为Date的字段上创建索引,指定索引的expireAfterSeconds字段,到期之后,集合数据会被删除。
一些额外的命令:
1、查看集合索引
db.col.getIndexes()
2、查看集合索引大小
db.col.totalIndexSize()
3、删除集合所有索引
db.col.dropIndexes()
4、删除集合指定索引
db.col.dropIndex("索引名称")
aggregate表示聚合,类似于MYSQL中的count或者sum等函数
具体的操作类型如表:
MDB聚合函数中,不同的函数的操作结果直接用于下一个操作函数,类似于UNIT、LINUX中的管道:
常见的几个操作如下表:
下面的指令代表:
先按age>19进行match,出来的数据,
再按照name分组,
count字段的数据来源于分组之后的age并被添加进的去重的set数组。
多列group命令如下:
聚合的使用非常灵活,可以满足很多查询需求。通过$project命令返回特定的结构
若要将某一field(字段)按照年月日周进行group,可以通过以下方式:
前提是改field本身是Date类型
MDB通过副本操作提高了可用性。