mongodb基础知识

2017-03-27 21:31

1. 文档

文档是mongodb的核心概念。就是键值对的一个有序集,其他语言中hash、map、dictionary。
文档的键的要求:

  • 键不能包含0(空字符),代表着键结束

  • .和$有特殊意义,是被保留的,不能使用。

mongodb不但区分类型,还区分大小写。
文档不能有重复的键。
文档中的键/值是有序的:{“x”:1,“y”:2}和{“y”:2,“x”:1}是不同的。通常,字段顺序不重要,某些情况下会非常重要。

2. 集合

集合就是一组文档,相当于关系型数据库中的一张表。
集合是动态模式的,集合里面可以放任何文档,类型甚至键集合之间都可以不同。

命名

  • 集合名称不能是空字符串

  • 集合名称不能包含0

  • 集合名称不能以system.开头,这是系统集合保留的前缀

  • 不能包含保留字符'$'

子集合

组织集合的一种管理是使用“.”分隔不同命名空间的子集合,例如博客功能的两个集合:blog.posts和blog.authors。

3.数据库

多个文档组成数据库。一个mongodb的实例可以承载多个数据库。每个数据库有独立的权限,不同的数据库也放置在不同的文件夹中。

命名

  • 不能为空字符串

  • 不能包含特殊字符。基本上只能使用ASCII中的字母和数字

  • 区分大小写,应全部小写。

  • 最多为64个字节

保留的库名

  • admin:这是root数据库,将一个用户添加到admin数据库中,这个用户将获得所有数据库的权限

  • local:这个数据库不可以复制,一台服务器中的本地集合都可以存储在这个数据库中

  • config:分片信息存储在config数据库中

数据库名添加到集合名前,得到集合的完全限定名,即命名空间(namespace)。例如cms数据库中的blog.posts。则命名空间为cms.blog.posts。命名空间不得超过121字节。

4.启动

mongod
bin/mongod --fork --config /usr/local/mongodb-3.2.6/etc/mongod.conf 

mongod没有参数的情况下,会使用默认的数据目录/data/db,如果目录不存在或者不可写,会启动失败。
启动时候默认监听27017端口。还会启动一个http服务器,监听数字比主端口号大1000,即28017。2.6以后的mongo都是关闭的,启动的时候加入--httpinterface开启。这里有详细的解释

5.shell

mongo
bin/mongo --host 192.168.253.XXX --port 27000

shell是个功能完备的JavaScript解释器,可以运行任意JavaScript程序。
默认连接的是test数据库。

db

查看当前链接的数据库

6.数据类型

  • null

  • 布尔型:true,false

  • 数值,默认使用的是64位浮点类型

  • 字符串

  • 日期:新纪元以来的毫秒数。创建的时候使用new Date(),而非Date()

  • 正则

  • 数组

  • 内嵌文档

  • 对象id:一个12字节的唯一标示

  • 二进制

  • 代码:可以包含js代码。