当前位置: 首页 > news >正文

Mongo读书笔记2 -- 数据类型

 

  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)

转载于:https://www.cnblogs.com/time-is-life/p/5235209.html

相关文章:

  • OC----简单的购物系统----
  • spring四种依赖注入方式
  • Swift2.0(17)内存管理ARC
  • 转:Vim实战指南(四):ex命令
  • Eclipse配置信息
  • 如何在CentOS 5/6上安装EPEL源
  • csu 1600: Twenty-four point
  • 常用的Linux操作命令(一)
  • 2014103《JAVA程序设计》第一周学习总结
  • 2月第4周网络安全报告:境内69.1万主机感染病毒
  • 本地环境,Ecshop安装教程
  • 使用maven+eclipse构建spark项目
  • pull解析和sax解析的差别
  • eclipse中JS文件乱码
  • JavaScript设计模式与开发实践系列之策略模式
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 4. 路由到控制器 - Laravel从零开始教程
  • CentOS7简单部署NFS
  • C语言笔记(第一章:C语言编程)
  • DataBase in Android
  • Java精华积累:初学者都应该搞懂的问题
  • nginx 配置多 域名 + 多 https
  • Phpstorm怎样批量删除空行?
  • quasar-framework cnodejs社区
  • Spark学习笔记之相关记录
  • SwizzleMethod 黑魔法
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 力扣(LeetCode)22
  • 目录与文件属性:编写ls
  • 前端
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 协程
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Spring第一个helloWorld
  • ​用户画像从0到100的构建思路
  • #include
  • #图像处理
  • (3)STL算法之搜索
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (八十八)VFL语言初步 - 实现布局
  • (二)换源+apt-get基础配置+搜狗拼音
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (一)插入排序
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net wcf memory gates checking failed
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net 受管制代码
  • .NET 中让 Task 支持带超时的异步等待
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET关于 跳过SSL中遇到的问题