一、Mac OSX 平台安装 MongoDB
参考
// 下载地址 https://www.mongodb.com/try/download/community
// 安装参考地址 https://www.runoob.com/mongodb/mongodb-osx-install.html
一、brew tap mongodb/brew
// 安装之前确保在 /usr/local/var/log 文件夹有读写权限
// @ 符号后面的 4.4 是最新版本号。
二、brew install mongodb-community@4.4
// 安装信息
- 配置文件:/usr/local/etc/mongod.conf
- 日志文件路径:/usr/local/var/log/mongodb
- 数据存放路径:/usr/local/var/mongodb
三、开始、停止、后台开启
brew services start mongodb/brew/mongodb-community
brew services stop mongodb/brew/mongodb-community
mongod --config /usr/local/etc/mongod.conf --fork // 后台开子进程开启
// 子进程开启之后如果需要关闭 可以进入 mongo shell 控制台来实现
// db.adminCommand({ “shutdown” : 1 })
四、通过终端进行命令行操作
cd /usr/local/bin
./mongo
Eg:
二、MongoDB 概念解析
参考链接
// https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html
SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键
一、和传统的数据库进行对比
二、基本概念
数据库
一个mongodb中可以建立多个数据库。
MongoDB的默认数据库为"db",该数据库存储在data目录中。
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
“show dbs” 命令可以显示所有数据的列表。
三、mongodb 配置用户名、密码
参考地址:
// https://blog.csdn.net/weixin_41238134/article/details/100069106
一、查看当前是否开启用户名密码
// 注释了代表没有开启用户名和密码认证
// 没有注释代表开启了用户名和密码认证
二、开启用户名和密码认证(创建用户均需进入admin数据库)
1、进入数据库shell
./usr/local/bin/mongo
2、切换到admin数据库
use admin
3、查看当前是否存在账户
show users
4、创建管理员账户
db.createUser({user:”zhangyanan”,pwd:”zhangyanan”,roles:[“root”]})
5、配置文件开启用户名和密码认证
注意出现错误
// uncaught exception: SyntaxError: illegal character : 是因为复制导致的 引号非英文
6、配置/usr/local/etc/mongo.conf开启权限认证
7、进行重启 brew services start mongodb/brew/mongodb-community
如果出现错误信息
mongodb报错1: connecting to:mongodb://127.0.0.1:27017. connect failed
就是这个时候没有启动mongod
sudo ./mongod -dbpath /usr/local/var/mongodb
8、mac 下将mongodb开机启动
创建一个plist文件
在/Library/LaunchDaemons目录下
sudo vi mongodb.plist
<?xml version='1.0' encoding='UTF-8'?> Label mongodb ProgramArguments /usr/local/mongodb/bin/mongod run --config /usr/local/mongodb/bin/mongodb.conf RunAtLoad KeepAlive WorkingDirectory /usr/local/mongodb StandardErrorPath /usr/local/mongodb/log/error.log StandardOutPath /usr/local/mongodb/log/output.log启动服务
sudo launchctl load -w /Library/LaunchDaemons/mongodb.plist
关闭服务
sudo launchctl unload -w /Library/LaunchDaemons/mongodb.plist
参考链接
// https://www.jianshu.com/p/3bedd7f044dc
四、进入mongo shell 操作
参考:
cd /usr/local/bin
./mongo --username zhangyanan --password zhangyanan
五、进行将数据库保存
参考下面例子
const { strict } = require(‘assert’);
const mongoose = require(‘mongoose’);
const { stringify } = require(‘querystring’);
const util = require(‘util’);
function DBconnect(mongoose) {
return new Promise((resolve, reject) => {
mongoose.connect(“mongodb://zhangyanan:zhangyanan@127.0.0.1:27017/dbTest1?serverSelectionTimeoutMS=5000&connectTimeoutMS=10000&authSource=admin&authMechanism=SCRAM-SHA-1&3t.uriVersion=3&3t.connection.name=zynlocal&3t.alwaysShowAuthDB=true&3t.alwaysShowDBFromUserRole=true”, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true
}, (info) => {
if (info) {
reject(info)
} else {
resolve(mongoose);
util.log(!info ? ‘数据库链接成功’ : info);
}
});
})
}
DBconnect(mongoose).then((mons) => {
const Schema = mons.Schema; // Schema 摘要、纲要的意思
const loginSch = new Schema({ username:String, password:String }); // 创建表结构
// 下面的第三个参数是表的名字如果不写,默认使用model名称的复数,则是 logins
const login = mongoose.model(‘login’, loginSch, ‘logins’); // 将表结构和model关联起来进行数据操作
const user = new login({username: ‘犬夜叉1’, password: ‘123456’}); // 将插入数据当做参数传递给model
user.save((info)=> {util.log(info)}) // 执行操作保存数据
});