collection介绍

1.collection介绍mongodb

mongodb中,collection至关于关系型数据库的表,但并不需提早建立,更不须要预先定义字段数据库

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

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

db.collect1.find();  #列出collect1中的全部记录索引

 2.collection能够进行任意维度的查询队列

以上面的collect1为例,能够执行get

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

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

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

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

 > db.collect1.find({age:28},{username:true})  #查询age=28username, 至关于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.

相关文章
相关标签/搜索