- 文档
- 集合
- 数据库
- 启动MongoDB
- MongoDB shell
- shell中的基本操作
文档
文档是MongoDB的核心概念,文档是键值对的一个有序集。文档被表示为对象:
{"greeting":"Hello World", "foo":3}
命名
- 键不能含有\0(空字符)
- .和$具有特殊意义,属于保留字符
- 区分类型和大小写
- 不可有重复的键
- 文档中键值对是有序的,通常MongoDB会对字段重新排序
数据类型
MongoDB和JSON类似,支持的格式比JSON多。 - null
- 布尔值
- 数值
- 字符串
- 日期
{"X" : new Date()}
- 正则表达式
{"X" : /foobar/i}
- 数组
- 内嵌文档
{"X" : {"foo" : "bar"}}
- 对象id,文档的唯一标识
- 二进制数据
- 代码
{"X" : function() {}}
集合
集合就是一组文档。如果将MongoDB的文档比喻为关系型数据库的一行,集合就是一张表。
动态模式
集合是动态模式的。一个集合里面的文档可以是各式各样的。
{"greeting" : "Hello world"}
{"foo" : 5}
命名
- 集合名称不能为空字符串
- 集合名不能包含\0字符
- 集合名不能以“system.”开头,这个系统集合保留的前缀
- 集合中不能包含字符’$’
数据库
多个集合组成MongoDB数据库
保留数据库
- admin:类似“root”数据库
- local:这个数据库永远不会被复制,一台服务器上的所有本地集合都可以存储在这个数据库中
- config:用于分片设置,分片信息会存在这个数据库中。
命名 - 不能是空字符串
- 只能使用ASCII中的字母和数字
- 区分大小写
- 最多64哥字节
启动MongoDB
运行mongod
命令启动数据库服务器,没有参数的情况下数据库默认目录/data/db(windows 系统在C:\data\db),如果目录没有读写权限启动会失败。
启动时默认端口27017,并会启动一个HTTP服务器,监听数字比主端口高1000的端口28017,可以通过http://localhost:28017,能获取数据库管理信息。
通过配置文件启动mongod -f xxx.conf
。例如:
#数据文件存放目录
dbpath = /usr/local/mongodb4/database/27017
logpath = /usr/local/mongodb4/logs/mongodb-27017.log #日志文件存放目录
logappend = true #日志输出方式
port = 27017 #端口
fork = true #以守护程序的方式启用,即在后台运行
#auth=true #需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释
bind_ip=0.0.0.0 #允许远程访问,或者直接注释,127.0.0.1是只允许本地访问
replSet=weiyan #副本集名称
MongoDB shell
运行mongo
启动shell,启动时shell会连接到服务器的test数据库,并将数据库连接赋值给全局变量db
。这个变量是通过shell访问MongoDB的主要入口。db
命令可以知道当前指向哪个数据库:
> db
test
shell中的基本操作
- 创建
insert
,可以将一个文档添加到集合中
> db.blog.insert({})
- 读取
find
和findOne
,可以接受一个查询文档作为限定条件
> db.blog.findOne({})
- 更新
update
。接受最少两个参数:第一个限制条件,第二个更新文档
> db.blog.update({条件}, {数据})
- 删除
remove
,可以将数据库中的文件永久删除。可以接受一个文档参数作为限制条件,没有就会删除集合所有文档
> db.blog.remove({条件})
参考文献
MongoDB权威指南