mongodb基础

1.完全限定的集合名字不能超过128个字符

盖子集合(一个集合设置固定大小,当满了之后再插入新的文档就会覆盖旧的文档):

2.TTL集合

db.reviews.createIndex({time_field:1},{expireAfterSeconds: 36}) //创建一个带TTL的索引
db.reviews.insert({time_field:new date()}) //插入当前时间,会与这个时间相比较,36秒后被删除,如果插入的不是时间就不会过期

限制:不能在_id字段建立索引,或者在其他已经建立索引的字段建立TTL索引,我们也不能在盖子集合里使用TTL索引,因为它不支持删除单个文档,最后,虽然我们可以在索引字段里有一组时间戳,但也不能组合TTL索引。这种情况,TTL属性只会使用集合中最早的时间戳

3.在正常的集合里,更新文档可能会导致空间增长,需要移动新的地址,并且留出空白区。这个特性导致数据大小和mongodb占用的磁盘空间之间有差别。

4.有效的key名字由最大255B长度的字符串组成,mongo会把key也存储起来,所以起的key的名字简短比较省空间。

5.文档的限制

1)在mongo 2.0以后的版本里,bson文档大小限制为16MB,原因有二:

(1)阻止开发者创建无意义的数据模型,虽然差的数据模型仍然可能出现,但16MB的限制不鼓励使用超过这个限制的文档,如果要存储超过16MB的文档,就可以考虑把文档存储为更小的文档。

(2)16MB的限制与性能相关,在服务器端,查询大的文档时需要在发送给客户端之前把文档拷贝到缓存里。这个拷贝工作非常昂贵,特别是当客户端不需要整个文档时。此外,一旦发送数据,这就是跨网络传输数据的工作,而且客户端驱动要反序列化它成本很高,尤其是处理上MB字节的大文件数据时。

(3)mongo文档的嵌套深度最大值限制是100。 如果要序列化一个树形结构到mongo中,其结果就是查询和访问非常困难,还可能会导致其他问题。这种类型的数据结构通常都通过递归函数访问,对深入嵌套的文档处理会导致堆栈溢出。

2)大量插入

数据库设置的一次插入操作上限是16MB,经验证明,最有效的大量插入在这个限制下都可以正常工作。

6.findone:会在自然排序文件集合中返回第一个项目

7.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值