1. Mongo有多种类型的collection, 默认的是随着document 数目的增多自动增大; 还有一些collection被称为capped collection, 只能包含固定数目的document, 当向里面添加document时, 最老的文档就会被新加的文档替换。
  2. 每个mongo collection都有唯一的名字,名字可以包含数字,letter和下划线,但$符不能用,是mongo保留字符。Collection的名字的最大允许长度是128,.
  3. 每个Mongo数据库默认最多允许24000个命名空间,每个collection至少需要两个命名空间:一个是collection自身,另一个是默认创建的第一个index. 也就是说,一个数据库最多可以允许12000个collection,这还是在每个collection只有一个索引的情况下。

    24000的限制可以通过执行mongod的时候通过提供nssize参数来更改。

  4. Mongo中的字段类型如下:

类型

说明

例子

string

 

{Country: "China"}

Integer(32b or 64b)

 

{Rank:1}

BOOLEAN

TRUE or FALSE

 

Double

存放浮点数

 

Min/Max keys

分别用来将一个值和最小/最大的BSON元素进行比较

 

Arrays

 

["aa","bb"]

Timestamp

用来存储时间戳。用来记录一个document创建或者修改的信息的时候很方便。

 

Object

用来存储embedded document.

 

Null

用来表示Null值。

 

Date

用UNIX时间格式(POSIX时间)来存储当前日期或者时间

 

Object ID

用来存储document的ID

 

Binary data

用来存储binary data.

 

Regular express

存储正则表达式

 

JavaScript Code

用来存储Javascript代码

 

 

最后五种数据类型是非JSON数据类型,是BSON允许你用的特殊数据类型。在后面,将学到如何用$type操作符来鉴别你的数据类型。

 

  1. 用MongoDB, 尽可能把能放在一起的信息都放在一个文档里,这样存取都非常快,因为它们在磁盘上是放在一起的。

    当你的应用程序是给多个用户用的时候,Good practise是把每个用户以及他们添加的数据分别放在不同的collection中,这个是与关系型数据库不同的地方。 Mongo允许你用两种方式在Collection之间创建引用:手动方式和自动方式。自动方式使用DBRef, 它在一个collection从给一个文档切换到下一个文档时提供了很大的灵活性。

     

  2. Mongo中的ObjectId是个12位的值:包含三位时间戳(从epoch开始的秒数),3位机器id, 3位进程id, 3位计数器。

    要创建一个ObjectId,有两个选择:一个是用Mongo命令行调用ObjectId()命令来创建一个 ObjectId,另一个可以用ObjectId(string)来用你自己的值来创建。

     

     

(The Definitive Guide to MongoDB)

Mongo读书笔记2 -- 数据类型的更多相关文章

  1. 《MySQL技术内幕——SQL编程》读书笔记(二)——数据类型

    对数据类型的选择将影响与数据库交互的应用程序的性能. 1.通常来说,如果一个页内可以存放尽可能多的行,那么数据库的性能就越好,因此选择一个正确的数据类型至关重要. 2.另一方面,如果在数据库中创建表时 ...

  2. Mongo读书笔记1 -- GridFS

      一个Mongo文档最大4M. GridFS不依赖于MongoDB, 其他符合规范的驱动都可以访问它. GridFS包含两部分:一部分存储文件名和其他metadata; 另一部分存储实际的文件,通常 ...

  3. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  4. 《C#高级编程》读书笔记

    <C#高级编程>读书笔记 C#类型的取值范围 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号的整数 -128~127(−27−27~27−127−1) sh ...

  5. js读书笔记

    js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 "&q ...

  6. 《JavaScript高级程序设计》读书笔记--前言

    起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...

  7. WPF,Silverlight与XAML读书笔记第四十八 - Silverlight网络与通讯

    说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 这一部分我们重点讨论下Silverlight ...

  8. 《C#图解教程》读书笔记之二:存储、类型和变量

    本篇已收录至<C#图解教程>读书笔记目录贴,点击访问该目录可获取更多内容. 一.类型初窥:掀起你的盖头来 (1)C程序是一组函数和数据类型,C++程序是一组函数和类,而C#程序是一组类型声 ...

  9. 《javascript权威指南》读书笔记(连载)

    这是一篇很长的博客 终于把权威指南给买回来了,之前一直犹豫,第一:书太厚,怕买了不能坚持看完.第二:觉得太贵,最少100¥.现在实习也能发点工资了,给自己定了一个志愿:把一个月的工资用于买书.这么一想 ...

随机推荐

  1. 数据预处理:标准化(Standardization)

    注:本文是人工智能研究网的学习笔记 常用的数据预处理方式 Standardization, or mean removal and variance scaling Normalization: sc ...

  2. BZOJ 2726: [SDOI2012]任务安排 [斜率优化DP 二分 提前计算代价]

    2726: [SDOI2012]任务安排 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 868  Solved: 236[Submit][Status ...

  3. BZOJ2111 ZJOI2010排列计数

    根据Pi>Pi/2可以看出来这是一个二叉树 所以我们可以用树形DP的思想 f[i]=f[i<<1]*f[i<<1|1]*C(s[i]-1,s[i<<1]),s ...

  4. java多线程技术之(callable和future)

    接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果. Callable接口类似于Runnable,从名字就可以看出来了,但是Runnab ...

  5. 【10.7校内测试】【队列滑窗】【2-sat】【贪心+栈二分+线段树(noip模拟好题)】【生日祭!】

    比较好想的一道题,直接用队列滑窗,因为扫一遍往队列里加东西时,改变的只有一个值,开桶储存好就行了! #include<bits/stdc++.h> using namespace std; ...

  6. Elasticsearch基础分布式架构

    写在前面的话:读书破万卷,编码如有神-------------------------------------------------------------------- 参考内容: <Ela ...

  7. ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力

    C. Om Nom and Candies Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/526 ...

  8. jquery中的 $.fn $.fx

    $.fn是指 jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效. 如扩展$.fn.abc() 那么你可以这样子:$("#div").abc(); 常使 ...

  9. Charles基本使用—http抓包、手机抓包、数据篡改

    本文主要介绍如下内容: 1.Charles如何抓取HTTP报文 2.Charles如何抓取手机上的HTTP包 3.使用Charles篡改数据信息 一.Charles抓取HTTP包 1.Charles的 ...

  10. ROS知识(7)----ROS命令中的单引号`和‘的混淆问题

    ROS命令中的单引号`和‘的区别,比如使用`单引号,以下的命令是正确的: $ rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz 而使用‘单引号, ...