MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。本文讲述 MongoDB 的入门级安装和使用。
1. 安装
方法一:
从 MongoDB 官网下载中心 下载社区版(Community Server)进行安装。步骤分为三步走:下载、解压、加入环境变量。
方法二:
笔者的安装环境为 Mac OS X 10.13,此处为了方便直接使用 HomeBrew 工具进行安装,命令如下:
1 | 更新软件列表 |
2. 运行
(1)Server 端
直接键入 mongod
命令即可运行 Server 端并监听,或者通过以下命令同时指定存放数据的文件目录:
1 | 指定数据存放的文件目录来运行 |
注意,此处命令为 mongod 不是 mongodb !!!
其次,如果不指定数据存放目录,则会使用 /data/db 目录,需要手动创建该目录
等待终端最后一行输出以下内容表示运行成功:
1 | 2018-01-22T11:43:39.802+0800 I NETWORK [initandlisten] waiting for connections on port 27017 |
(2)Client 端
Mongo Shell 是 MongoDB 的一个 JavaScript 交互式接口,用户通过该接口来实现对数据的查询和管理。
新开一个终端窗口,通过以下命令来开启 Mongo Shell 接口来操作数据库,此处在同一主机上运行:
1 | 启动 mongo shell |
再次注意,此处的命令是 mongo,不是 mongod,也不是 mongodb !!!
不带参数,默认将访问 localhost:27017
等待终端出现待键入界面,表明连接成功:
1 |
3. 使用
安装完毕后的使用,可以参考 MongoDB 的 官方教程,本文将简要讲述基本的入门使用教程。
3.1 Mongo Shell
(1)切换数据库
1 | 显示所有可用的数据库 |
第一次使用 use 命令切换或使用 collection 插入数据时,如果 db 或者 collection 不存在,则会自动创建
(2)Collection
1 | 获取 Collection 使用 db.<collection name> 语法 |
3.2 CRUD
3.2.1 增加记录
1 | 插入单条记录 |
增加记录涉及到的行为:
- 自动创建,如果被插入的 Collection 不存在,将会被自动创建
- _id 字段,如果被插入数据没有 _id 字段,将自动增加该字段作为主键
- 原子性,所有写入操作均为原子性的操作
- 写入 ACK,可以指定写入执行结果的 ACK 级别
3.2.2 查询记录
1 | 查询所有记录 find(),等价于 find({}) |
末尾加上 .pretty() 可以以 json 排版更好地展示结果
可以指定查询条件,相当于 SQL 的 WHERE 关键字。
(1)明确相等条件
1 | 键值对语法指定相等条件 { <field1>: <value1>, ... } |
值可以为正则表达式,使用两个
/
符号包括起来
(2)操作符指定条件
1 | 操作符语法指定条件 { <field1>: { <operator1>: <value1> }, ... } |
$or
操作符在此处具备同样的效果,但注意$in
作用在同一字段,$or
与$and
是对应的操作符
其中,比较条件操作符有以下:
$eq
相等$ne
不等于$gt
大于$lt
小于$gte
大等于$lte
小等于$in
包含$nin
不包含
(3)且和或条件
1 | And 条件,多个属性并列即为 And 条件 |
1 | Or 条件,使用 $or 操作符来指定 Or 条件 |
3.2.3 修改记录
1 | 三种函数可用于修改记录 |
1 | 更新一条记录 |
1 | 更新多条满足条件的记录 |
其中,$currentDate
操作符用于修改时间字段,如果没有 lastModified 字段,将创建该字段。
1 | 替换记录 |
替换记录,会替换除 _id 字段的正文内容。
3.2.4 删除记录
删除记录比较简单,deleteMany() 和 deleteOne() 两个函数,参数传递条件即可。
1 | 删除多条记录 |
同样,条件可以指定
{}
用来删除所有记录
删除操作不会删除索引,除非删除一个集合的所有记录
总结
本文简要讲解了 MongoDB 的入门级安装和使用,帮助读者简要了解 MongoDB,此文讲解的内容只是 MongoDB 的冰山一角,如需使用到更高级的功能还需要读者进一步地学习。