MongoDB 是近年来非常流行的一个介于关系数据库和非关系数据库之间的解决方案,采取面向文档的分布式设计思路,具有强大的可扩展性,表结构自由,并且支持丰富的查询语句和数据类型。时至今日,MongoDB 以其灵活的数据存储方式,逐渐成为 IT 行业非常流行的一种非关系型数据库解决方案。
笔者在项目中也经历了从零开始学习 MongoDB 数据库的过程,因此想把我学习过程中的一些心得通过文章分享出来。
步骤1 - MongboDB 环境搭建
MongoDB 支持的数据结构非常松散,是类似 json 的 bson 格式,这种灵活的格式使得 MongoDB 可以存储比较复杂的数据类型。Mongo 最大的特点是它支持的查询语言(Query Language)非常强大,其语法有点类似于面向对象的查询语言,因此可读性非常好,并且几乎可以实现类似关系数据库单表查询的绝大部分功能。
本步骤介绍 MongoDB 学习的第一步:环境搭建。
从 MongoDB 的 官网下载安装包。
我安装在 C 盘的 MyApp 目录下的 mongoDB,安装完毕后,bin 文件夹里有好几个执行文件。把 bin 文件路径加到 windows 系统的环境变量里。
使用如下命令行启动 MongoDB 服务器:
mongod --dbpath C:MyAppmongoDBjerryserverdb
从控制台打印的 console 里看到下列消息:
Mongo DB starting: pid=16588 port=27017
意思是进程 id 为 16588 的进程启动了 MongoDB,监听端口号为 27017.
console 里还有其他一些有用的提示,比如:
Read and write access to data and configuration is unrestricted - 没有对数据读写设置权限
WARNING: This server is bound to localhost - 这个服务器通过 localhost 访问
在 cmd 里用命令 netstat -ano | find "27017"
, 发现确实进程 id 为 16588 的进程在端口 27017 监听:
打开 MongoDB Compass, 这是 MongoDB GUI 图形化操作界面,在 MongboDB 安装过程中也自动被安装了。
Hostname 输入 localhost,port 输入 27017,点击 Connect 进行连接:
连接之后,在 admin 数据库下创建一个新的 Collection:
我的例子里,collection 名称为 person,点 INSERT DOCUMENT 创建一条记录, _id 为 MongoDB compass 自动生成的, 另一个字段的名称为 name, 值为 “Jerry”:
再点一次 INSERT DOCUMENT
, 生成两条 person 记录。
现在我们新开另一个命令提示行窗口来消费在 MongoDB Compass 里创建的两条 person 记录。
命令行 mongo localhost:27017/admin
, 意思是连接这个数据库里的 admin 数据库
此时从前一个启动 MongoDB 服务器的命令提示行的控制台输出,能看到 connection accepted from 的输出:
命令行 db.person.find()
, 打印出了 admin 数据库里 person 表里的两条记录,说明我们环境配置成功了。