什么是MongoDB
MongoDB 是面向文档的NoSQL数据库,用于大量数据存储
MongoDB概念解析
| SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
|---|---|---|
| datebase | database | 数据库 |
| table | collection | 数据库表/集合 |
| row | document | 数据记录行/文档 |
| column | field | 数据字段/域 |
| index | index | 索引 |
| table joins | 表连接,MongoDB不支持 | |
| primary key | primary key | 主键,MongoDB自动将_id字段设置为主键 |
Install In Mac
- 官网上直接可以下载社区版本 download,是免费的,下载之后解压,文件命名为
mongodb,放在/usr/local目录里面; - 安装路径:
/usr/local/mongodb/bin - 保存数据库目录(这里是自己选择的目录)
配置环境变量
- 如果使用的是:
item2+oh-my-zsh
// 输入命令:vim ~/.zshrc
export PATH=${PATH}:/usr/local/mongodb/bin
// 保存之后执行:source ~/.zshrc
- 如果使用的是
bash_profile
// 输入命令: vim .bash_profile
export PATH=${PATH}:/usr/local/mongodb/bin
// 保存之后执行:source ~/.bash_profile
启用
- 配置了环境变量的,命令行直接输入:
mongod --dbpath 数据库目录 - 没有配置的话,就需要到安装目录的
bin目录下面,然后在输入上面命令就能正常启动
验证是否可以使用
mongod -version
启动遇到的问题
- 无法打开“mongod”,因为无法验证开发者。
需要在“系统偏好设置”-> "安全性与隐私" -> "通用" -> 设置允许
- 启动服务日志中如果含有
Address already in user,即是端口占用问题
// 查看占用端口的进程
lsof -i :27017
// 杀死此进程
kill -9 PID(存在的进程PID)
客户端软件(Robo 3T)
Node项目中使用MongoDB数据库
- 安装模块:
npm install mongoose --save - usage
// mongoose 是 mongoDB 的一个对象模型工具,是基于Node-MongoDB-Native开发的MongoDB的Node.js驱动,可以在Node.js异步环境下执行。
const mongoose = require('mongoose');
// mongodb://user:pass@ip:port/database
// user 是MongoDB里的用户名
// pass是MongoDB里该用户对应的密码
// ip 是 MongoDB服务器可以访问的IP地址,比如本地IP地址为127.0.0.1
// port是 MongoDB服务器可以访问的端口,默认是27017
// 建立数据库连接
// mongodb:连接的数据库类型
// 127.0.0.1:27017: 本地数据库地址
// db_hello: 数据库名字
mongoose.connect('mongodb://127.0.0.1:27017/db_hello');
mongoose.connection.on("error", function(error) {
console.log("数据库连接失败:" + error);
})
mongoose.connection.on("open", function() {
console.log("数据库连接成功")
})
// 通过 mongoose.model 定义模型
const Cat = Mongoose.model("Cat", { name: String});
// 通过关键字 new 实例化 Cat 模型, 参数是 { name: "small cat"}, 创建 kitty 对象
const kitty = new Cat({ name: "small cat"});
// 执行 kitty.save, 将模型数据保存到数据库
kitty.save(function(error) {
if (error) {
console.log("save error:" + error);
}
console.log("save success");
})