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. 模型构建<1>:模型评估-分类问题

    对模型的评估是指对模型泛化能力的评估,主要通过具体的性能度量指标来完成.在对比不同模型的能力时,使用不同的性能度量指标可能会导致不同的评判结果,因此也就意味着,模型的好坏只是相对的,什么样的模型是较好 ...

  2. LOJ P1155 双栈排序 二分图染色 图论

    https://www.luogu.org/problem/show?pid=P1155 题解: https://www.byvoid.com/zhs/blog/noip2008-twostack 开 ...

  3. Java Maven:spring boot + Mybatis连接MySQL,通用mapper的增删改查,映射实现多表查询

    1. MySQL自带库test添加表user.role 角色表role 用户表user 2. 添加依赖,配置属性 相关依赖:百度即可,此处略 application.properties spring ...

  4. poj 1466 Girls and Boys 二分图的最大匹配

    Girls and Boys Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=1466 Descripti ...

  5. hdoj 5119 Happy Matt Friends 背包DP

    Happy Matt Friends Time Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Others ...

  6. JavaEE-学习目录

    JavaEE ============================================ Web工作机制 JSP Struts基础 Struts核心文件 Struts数据校验与国际化 S ...

  7. 深入浅出-网络七层模型&&网络数据包

    网络基本概念 OSI模型 OSI 模型(Open System Interconnection model)是一个由国际标准化组织

  8. [Asp.net MVC]Bundle合并,压缩js、css文件

    摘要 在web优化中有一种手段,压缩js,css文件,减少文件大小,合并js,css文件减少请求次数.asp.net mvc中为我们提供一种使用c#代码压缩合并js和css这类静态文件的方法. 一个例 ...

  9. MEF(Managed Extensibility Framework)使用全部扩展组件

    MEF(Managed Extensibility Framework),所在命名空间是System.ComponentModel.Composition.dll.简单来说,MEF是将符合约定(一般是 ...

  10. Android中关于项目中对Thread的管理(不是线程池)

    背景 项目中对于一些并不复杂的耗时操作,比如计算,不频繁操作数据库等,因为没必要使用线程池,所以之前项目会直接使用new Thread的方式,时间一长,回头再看,原来new Thread之处已经很多了 ...