MongoDB013 进阶指南

来源:互联网 发布:360软件商城下载 编辑:程序博客网 时间:2024/05/20 19:45

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.      数据库引用

原创粉丝点击