1. db.runCommand({"listCommands":1})
//查看数据库支持的命令
2. 固定集合
固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。这意味着固定集合在新文档插入的时候自动淘汰最早的文档。
固定集合和普通集合还有一个区别,就是在默认情况下固定集合没有索引,即便是”_id”上也没有索引。
2.1 属性与特点
固定集合的特点:1.对固定集合进行插入速度极快 2.按照插入顺序输出的查询速度极快。默认情况下,对固定集合进行查找都会以插入顺序返回结果。3. 在新数据插入时,自动淘汰最早的数据。这几样组合起来使得固定集合特别适合像日志就种应用场景。事实上,MongoDB中设计固定集合的目的就是用来存储内部复制日志。
2.2 创建固定集合
不像普通集合,固定集合使用前必须显式地创建。
>db.createCollection(“my_collection”,{capped:true,size:100000})
上述命令指定了固定集合my_collection的大小为100000字节。createCollection也有些别的选项,如可以指定文档数量的上限:
>db.createCollection(“my_collection”,{capped:true,size:100000,max:100})
当指定文档数量上限时,必须同时指定大小。淘汰机制只有在容量还没有满时才会依据文档数量来工作。要是容量满了,淘汰机制则会依据容量来工作,就像别的固定集合一样。
还可以通过转换已有的普通集合的方式创建固定集合。使用convertToCapped命令来完成这个操作。
>db.runCommand({convertToCapped:”test”,size:10000})
2.3 自然排序
固定集合有种特殊的排序方式,叫做自然排序。自然顺序就是文档在磁盘上的顺序。在默认情况下,查询固定集合后就是按照插入顺序返回文档。也可以使用自然排序按照反向插入的顺序查询。
>db.my_collection.find().sort({“$natural”:-1})
非固定集合不能保证文档按照特定顺序存储,所以自然顺序的意义不大。
2.3 尾部游标是一种特殊的持久游标,这类游标不会在没有结果后销毁。游标受到tail –f命令的启发,类似地会尽可能地获取结果输出。因为这类游标在没有结果后也不销毁,所以一旦有新文档添加到集合里面就会被取出并输出。尾部游标只能用在固定集合上。
3. GridFS: 存储文件
4. 服务器端脚本
5. 数据库引用