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.

collection介绍的更多相关文章

  1. Mongodb常用命令介绍

    查看命令的方式: 1.在shell中运行db.listCommands() 2.在浏览器中访问管理员接口:http://ipaddress:28017/_commands 下面介绍在Mongodb中最 ...

  2. 容器--Collection和AbstractCollection

    一.前言 容器是JAVA中比较重要的一块,整个体系设计得非常好,同时对于代码学习来说也是比较好的范例.同时很多面试官也比较喜欢用容器来考察面试者的基础知识,所以掌握好容器还是比较重要的.本文主要总结一 ...

  3. java语言中的匿名类与lambda表达式介绍与总结 (Anonymous Classes and Lambda Expressions)

    2017/6/30 转载写明出处:http://www.cnblogs.com/daren-lin/p/anonymous-classes-and-lambda-expressions-in-java ...

  4. 集合Collection总览

    前言 声明,本文使用的是JDK1.8 从今天开始正式去学习Java基础中最重要的东西--->集合 无论在开发中,在面试中这个知识点都是非常非常重要的,因此,我在此花费的时间也是很多,得参阅挺多的 ...

  5. Collection接口详解

    Collection 介绍 https://blog.csdn.net/jyg0723/article/details/80498840 Stream API介绍  https://www.jians ...

  6. 032.[转] Java集合框架

    Java集合框架和各实现类性能测试 pphh发布于2017年11月17日 Java语言集合框架提供一系列集合接口类 (collection interface)和实现类,满足对集合中元素对象的各种集合 ...

  7. Guava库介绍之集合(Collection)相关的API

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...

  8. Solr术语介绍:SolrCloud,单机Solr,Collection,Shard,Replica,Core之间的关系

    Solr有一堆让人发晕的术语如:collections,shards,replicas,cores,config sets. 在了解这些术语之前需要先做做如下功课: 1)什么是倒排索引? 2)搜索引擎 ...

  9. 介绍Collection框架的结构;Collection 和 Collections的区别

    介绍Collection框架的结构:Collection 和 Collections的区别 集合框架: Collection:List列表,Set集 Map:Hashtable,HashMap,Tre ...

随机推荐

  1. pod update更新error: RPC failed; curl 18 transfer closed with outstanding read data remaining

    1. pod update 的时候出现下边的错误 error: RPC failed; curl 18 transfer closed with outstanding read data remai ...

  2. 1. 全文搜索框架 Haystack

    1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh ...

  3. 解决Tomcat catalina.out 不断膨胀,导致磁盘占用过大的问题

    到服务器上看了一下任务中心的日志情况,膨胀的很快,必须采取措施限制其增长速度. 我们采用Cronlog组件对此进行日志切分,官网http://cronolog.org/一直未能打开,只能从其它地方寻找 ...

  4. dubbo webservice 区别

    DUBBO中可以设置采用webservice方式,进行数据交互. 随着交互系统的增多,这种方式对系统的侵入性越来越大,关系更为错综复杂,很容易出错. 较适用与外围系统通信,若是内部系统间则会出现以上较 ...

  5. 从壹开始[ 做贡献 ]之三 || 北京.Net俱乐部活动——DNT精英论坛开幕

    缘起 哈喽大家好!好久不见,可能有一部分小伙伴发现我好久没有写文章了,是不是懒惰了,并没有,这两周也是正式开始了<NetCore系列教程的视频录制>,不过还不多,预计会是每周一个视频,基本 ...

  6. android_sdcard读写(三)

    这次来个稍微复杂点的. package cn.com.sxp;import android.app.Activity;import android.app.ProgressDialog;import ...

  7. 每日一问:View.getContext() 的返回一定是 Activity 么?

    坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 一般我们被问到这样的问题,通常来说,答案都是否定的,但一定得知道其中的原 ...

  8. ROS中URDF的学习以及与Xacro的比较

    1.urdf与Xacro简单比较 "URDF" 是最初也是比较简单的机器人描述文件,它的结构简单明了,容易理解.但是这也导致当机器人模型变得复杂时,urdf的结构描述就变得冗长,无 ...

  9. 1.svn 彻底clear时,注意代码备份 2.借助vc助手加头文件

    1.svn 彻底clear时,注意代码备份 2.不小心彻底clear可以在回收站找到 3.借助vc助手加头文件

  10. Hybrid App从概念到实战

    最近一直在准备找工作,看了很多公司的招聘介绍,有相当一部分直接写:熟悉 Hybrid App 开发加分!正好,我司开发的就有这种 Hybrid App--使用WebViewJavascriptBrid ...