1.collection介绍

在mongodb中,collection相当于关系型数据库的表,但并不需提前创建,更不需要预先定义字段

db.collect1.save({username:'mayj',mail:'test@abc.com'})  #向collect1中插入一条记录,collection会在第一次插入记录的时候自动创建

db.collect1.save({username:'name2',mail:'name2@abc.com',age:28})  #插入一条新记录,相对上条记录这次有三个key,类似三个字段

db.collect1.find();  #列出collect1中的所有记录

2.对collection可以进行任意维度的查询

以上面的collect1为例,可以执行

> db.collect1.find({username:'mayj'})  #查询username='mayj'的记录,相当于执行select * from collect1 where username='mayj'

结果:{ "_id" : ObjectId("4cb7efb7a3f37347a20e37ea"), "username" : "mayj", "mail" : "test@abc.com" }

> db.collect1.find({age:28})  #查询age=28的记录,相当于select * from collect1 where age=28

{ "_id" : ObjectId("4cb7efb7a3f37347a20e37eb"), "username" : "name2", "mail" : "name2@abc.com", "age" : 28 }

> db.collect1.find({age:28},{username:true})  #查询age=28的username值, 相当于select username from collect1 where age=28

{ "_id" : ObjectId("4cb7efb7a3f37347a20e37eb"), "username" : "name2" }

其实还可以对collection里的任意key创建索引,以加快查询速度

3.capped collection介绍

如前面介绍collection相当于一个表,capped collection就相当于可以指定一个表可以占用空间的最大空间或指定一个表最大可容纳的记录数,个人认为在某些应用场合下这个功能很好用

举例说明:

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

#指定mycoll这个表最大可以使用100000byte空间,当达到最大空间时再insert记录时,会把最早insert的记录自动删除,好比一个FIFO队列

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

#指定mycoll这个表最大记录数为100,当第101条记录进来时,最早的记录会被自动删除

如:

> db.createCollection("c1_max_1", {capped:true, size:100000, max:1});  #指定最大记录数为1

{ "ok" : 1 }

> db.c1_max_1.save({a:1})   #插入一条记录

> db.c1_max_1.find()

{ "_id" : ObjectId("4cb7f6efa3f37347a20e37ec"), "a" : 1 }  #列出表所以记录,共一条

> db.c1_max_1.save({a:2})   #再插入一条记录

> db.c1_max_1.find()

{ "_id" : ObjectId("4cb7f6ffa3f37347a20e37ed"), "a" : 2 }  #列出表所以记录,仍为一条,最早的记录被删除

collection限制

默认的情况下,MongoDB的每个数据库有24000左右命名空间的限制。

每个命名空间有628字节。.nsfile默认为16MB。

每个collection以及索引都算作namespace。因此如果每个collection有一个索引,

我们能创建12000个collection。

--nssize允许提升这个限制。

小心的是每个collection都会占用一些存储-很少的KB。更近一步说,任何的索引都需要至少8KB的数据空间,也就意味着每个b-tree page大小为8KB.

如果有很多collection以及元数据经常要页输出,会导致核心的操作速度变慢。

--nssize

如果需要更多的collection,运行mongod --nssize参数。这个参数会让.ns文件更大,

支持更多的collection。注意的是 --nssize 用于最新创建数据库。如果你运行在一个存在的数据库,

希望重新定义大小,那么在运行--nssize之后,要运行db.repairDatabase()命令来调整大小。

.ns 文件最大为 2GB.

最新文章

  1. 【转】 Android WebView内容宽度自适应
  2. 好看的IDE配色方案让代码看起来不再那么凶猛了
  3. bzoj1029 [JSOI2007]建筑抢修
  4. GATK使用说明-GRCh38(Genome Reference Consortium)(二)
  5. [USACO2003][poj2138]Travel Games(dp/最长路)
  6. thread、operation、GCD
  7. JMS生产者+单线程发送-我们到底能走多远系列(29)
  8. C#转Python计划
  9. Oracle 错误码
  10. wamp 虚拟目录的设置(转载)
  11. attachEvent与addEventlistener兼容性
  12. .net core 系列
  13. python 随笔
  14. 服务管理之rsync
  15. Python 解决 :NameError: name 'reload' is not defined 问题
  16. SQL 事务 begin tran、commit tran、rollback tran 的用法
  17. Python基础【day03】:入门知识拾遗(八)
  18. docker swarm 英文参考资料阅读列表
  19. 第二节:Linux下检出项目和提交项目
  20. hibernate二级缓存ehcache hibernate配置详解

热门文章

  1. ORACLE常用函数的使用方法
  2. 我在生产项目里是如何使用Redis发布订阅的?(二)Java版代码实现(含源码)
  3. Linux命令学习-cp命令
  4. c++学习书籍推荐《面向对象程序设计:C++语言描述(原书第2版)》下载
  5. 剑指offer第二版-5.替换空格
  6. .netcore微服务-Mycat
  7. delegate委托的例子,实现对Form中控件的更新
  8. c语言进阶12-线性表之顺序表
  9. MySQL 5.7和8.0性能测试
  10. Java中使用 foreach 操作数组