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. 浅入深出Vue:第一个页面

    今天正式开始入门篇,也就是实战了~ 首先我们是要做一个博客网站,UI 框架采用江湖传闻中的 ElementUI,今天我们就来利用它确定我们博客网站的基本布局吧. 准备工作 新建一个vue项目(可以参考 ...

  2. JavaScript-浏览器的三种弹窗方式

    //BOM 弹窗 //同步 阻断 alert("alert弹窗"); //返回布尔值 (是/否) var bcf = confirm("confirm弹窗"); ...

  3. mysql语句优化原则

    有时候发现数据量大的时候查询起来效率就比较慢了,学习一下mysql语句优化的原则,自己在正常写sql的时候还没注意到这些,先记录下来,慢慢一点一点的学,加油! 这几篇博客写的都可以: https:// ...

  4. Redis主从复制实现原理

    一.Redis2.8之前的版本, 首先redis复制功能分为同步操作和命令传播两个操作 同步操作作于将从服务器的数据库状态更新至主服务器当前所处的数据库状态  命令传播操作则用于在主服务器的数据库状态 ...

  5. printf打印参数的顺序问题

    C语言的printf函数处理的参数顺序是从右向左的,例如如下程序: #include <stdio.h>    int main()  {      int a = 1, b = 2, c ...

  6. codeblocks出现'to_string' was not declared in this scope 的问题,用g++11编译环境

    在将数字转化为字符串时使用to_string()竟然出现了'to_string' was not declared in this scope,我头文件用的万能头文件肯定没问题,而这个函数在其他的CB ...

  7. JavaScript控制语句结构、函数部分

    HTML页面代码: <html> <head> <meta charset="UTF-8"> <title>HelloWorld&l ...

  8. excel报表开发-- 根据datatable个数自动生成新sheet

    总结一下很久之前做的报表小程序,今日有问题又调试了一下. DB中存在一个表,记录了ID<自增长>,SqlStatement<sql查询语句>及其他必要字段,比如SheetNam ...

  9. motion做摄像头(ZC3XX)移动物体监控系列问题

    一:插入摄像头USB没有显示 gspca: video x creat 解决:cd /dev            ls |grep video 进入/dev目录下,运行ls |grep video命 ...

  10. javascript案例之照片墙

    效果图: ----------------------------------------------------------------------------------------------- ...