MongoDB学习笔记之二 Collections

二、Collections

      概述

      Collections可以理解为关系数据库中的表。Mongo是一个模式自由的数据库,意味着在存入数据之前不必声明字段类型。一个Collections会在第一次插入数据的时候自动创建。

     命名规则

    一个Collections必须以字母或下划线开头,可以包含数字。$是保留字符。每个Collections的命名长度上限为120个字符(包括索引名和数据库名),推荐保持在80~90个字符以内。

     Capped Collections

     这是一种固定大小的Collections,具有非常高的性能,LRU算法(特意百度了一下,一种类似GC的机制)。必须在创建Collections的时候就指定是Caped Collections和以字节为单位定义空间大小。

 

db.createCollection("mycoll", {capped:true, size:100000})

  需要注意的地方:

 1、mongo不允许删除一个非空的Capped Collections,使用drop()方法先把Collections内的所有记录删除。

 2、一个capped Collections在32位系统上的最大值为1e9字节*(约和482.5M),在64位系统则只有系统限制。

 3、一旦存储空间用完,则最后插入的数据会覆盖掉最早插入的数据。

 4、logging。Mongo中日志机制的首选,Mongo没有使用日志文件,而是把日志事件存储在数据库中。在一个没有索引的capped collection中插入对象的速度与在文件系统中记录日志的速度相当。
 5、 cache。缓存一些对象在数据库中,比如计算出来的统计信息。这样的需要在collection上建立一个索引,因为使用缓  存往往是读比写多。
 6、auto archiving。可以利用capped collection的roll out特性,省去了写cron脚本进行人工归档的工作。

 7、可以在创建capped collection时指定collection中能够存放的最大文档数。但这时也要指定size,因为总是先检查size后检查maxRowNumber。可以使用validate()查看一个collection已经使用了多少空间,从而决定size设为多大。如:

db.createCollection("mycoll", {capped:true, size:100000, max:100});

db.mycoll.validate(); 

max=1时会往collection中存放尽量多的documents。

8、上述的createCollection函数也可以用来创建一般的collection,还有一个参数"autoIndexID",值可以为"true"和"false"来决定是否需要在"_id"字段上自动创建索引,如:

db.createCollection("mycoll", {size:10000000, autoIndexId:false})

默认情况下对一般的collection是创建索引的,但不会对capped collection创建。

 

      未完待续

http://www.mongodb.org/display/DOCS/Capped+Collections

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值