一、MongoDB的文档与集合

    (1)文档

    1.文档是MongoDB最核心的概念,本质上是一种类JSON的BSON格式的数据,BSON是一种类JSON的二进制格式数据,可以理解为在JSON上添加了一些新的数据类型,如日期,int32,int64等。BSON具有轻量性、可遍历性、高效性。

    2.MongoDB中写操作的原子限制在文档级别。单个文档占用的存储空间不能超过16M(看不同的版本),如果太大那就得重新反思一下表模式设计。

    3.MongoDB会尽量保持文档被插入时键值对的顺序。但更新操作会导致文档内存的重新分配。

    4.文档键命名,_id是系统保留的关键字,他是默认的主键,唯一,且不可更改。键不能包含\0或者空字符,这个字符用于表示键的结尾。不能以$开头,不能包含.点号,键是区分大小写的且不能重复。

    (2)集合

    1.把一组相关的文档放到一起则形成集合。

    2.MongoDB提供一些特殊的集合。

    3.集合命名集合名不能是空字符串,不能\0(空字符),不能以system.开头,这是系统本身保留的不能有$ 但是可以包含.。

    (3)数据库

    1.多个集合组成数据库。每个数据库有独立的权限,一个MongoDB实例可以承载多个数据库,磁盘上不同数据库也可以放置在不同文件夹中(启动时加directoryperdb选项)。

    2.命名不能是空字符串,不能以$开头,不能包含.和空字符串,区分大小写建议用小写。


二、MongoDB数据类型

    BSON在JSON基础上添加了新数据类型,包括Date,正则表达式,对数值类型的更进一步划分等。MongoDB笔记(一)_Mongo

    1.数值类型 MongoDB shell采用的是JavaScript的shell,而JavaScript只支持64位浮点数,如果需要int需要采用NumberInt()和Number Long()。

    2.字符串类型 通过双引号可转换成utf-8编码。

    3.二进制类型 可以保存任意字节组成的字符串,图片视频等。

    4.正则表达式。

    5.JavaScript代码 文档可以包含任意的JavaScript代码。

    6.ObjectId 由24个16进制字符构成,总共由12字节组成,用来标识唯一机器。

    7.内嵌文档 

    8.数组 使用方括号来表示的一组值,可以作为有序对象(列表、栈、队列)、也能作为无序对象(如集合)来操作,数组中可以包含不同数据类型的元素。针对数组MongoDB提供了许多特定的操作符,如$push,$pop等。MongoDB可以自动为数组元素提供Multikey索引。


三、MongoDB Shell

    MongoDB Shell = JavaScript解释器+MongoDB客户端

    (1)基本功能

    1.执行JavaScript命令。

    2.MongoDB客户端-基本命令。

    连接/切换数据库  use jike;

    数据插入         db.stu.insert(obj);

    数据查询         db.stu.find(query);

    数据更新         db.stu.update(query,obj);

    数据删除         db.stu.remove(query);

    (2)使用技巧

    1.help 查看帮助。

    2.执行脚本。

    3.执行命令行程序。

    4..mongorc.js文件使用。