在Ubuntu安装MongoDB
Start MongoDB
sudo systemctl start mongod
Verify that MongoDB has started successfully
sudo systemctl status mongod
Stop MongoDB
sudo systemctl stop mongod
Restart MongoDB
sudo systemctl restart mongod
Begin using MongoDB
mongosh
MongoDB设置账号密码
1、使用mongodb
mongosh
2、切换到 admin 数据库
use admin
3、给admin设置用户密码
db.createUser({user: 'root', pwd: 'root', roles: ['root']})
4、验证是否添加成功
db.auth('root', 'root')
5、创建一个新的数据库
use demo
6、为 demo 库添加一个用户,并赋予权限
db.createUser({user:'demo', pwd: 'demo', roles:[{role: 'readWrite', db: 'demo'}]})
7、开启安全登录及远程访问,修改 /etc/mongod.conf
文件
8、在修改 /etc/mongod.conf
文件后请使用以下命令使配置文件的更改生效:
sudo systemctl daemon-reload
sudo systemctl restart mongod
常用命令
show users // 查看当前数据库下的用户
db.dropUser('demo') // 删除用户
db.updateUser('demo', { pwd: '123' }) // 修改用户密码
db.auth('demo', '123') // 登录认证
使用命令操作数据库
-- 显示所有数据库
-- show dbs
-- 新建/使用一个数据库
-- use Leslie
-- 显示所有集合
-- show collections
-- 新建/使用users文档
-- db.users.insert({ 'username': 'zhangsan', 'password': '123456', 'realname': '张三' })
-- 查询users文档下的所有数据
-- db.users.find()
-- 查询users文档下只包含指定字段的所有数据
-- db.users.find({ 'username': 'zhangsan' })
-- 查询users文档下 age == 22 的记录
-- db.users.find({ age: 22 })
-- 查询users文档下 age > 22 的记录
-- db.users.find({ age: { $gt: 22 } })
-- 查询users文档下 age < 22 的记录
-- db.users.find({ age: { $lt: 22 } })
-- 查询users文档下 age >= 22 的记录
-- db.users.find({ age: { $gte: 22 } })
-- 查询users文档下 age <= 22 的记录
-- db.users.find({ age: { $lte: 22 } })
-- 查询users文档下 age >= 20 && age <= 23 的记录
-- db.users.find({ age: { $gte: 20, $lte: 23 } })
-- 查询users文档下 name 中包含 mongo 的数据
-- db.users.find({ name: /mongo/ })
-- 查询users文档下 name 中以 mongo 开头的数据
-- db.users.find({ name: /^mongo/ })
-- 查询users文档下指定列 name、age 数据
-- db.users.find({}, { name: 1, age: 1 })
-- 查询users文档下指定列 name、age 数据,age > 20
-- db.users.find({ age: { $gt: 20 }, { name: 1, age: true } })
-- 按 年龄 升序查询users文档下的数据
-- db.users.find().sort({ age: 1 })
-- 按 年龄 降序查询users文档下的数据
-- db.users.find().sort({ age: -1 })
-- 查询users文档下前 10 条数据
-- db.users.find().limit(10)
-- 查询users文档下 5 条以后的数据
-- db.users.find().skip(5)
-- 查询users文档下 5 - 10 条之间的数据
-- db.users.find().limit(10).skip(5)
-- 查询users文档下第一条数据
-- db.users.findOne()
-- 查询users文档下某个结果集的记录条数
-- db.users.find(age: { $gt: 20 }).count()
-- 修改users文档下 所有用户名为“zhangsan”的年龄为16
-- db.users.update({ username: 'zhangsan' }, { $set: { age: 16 } }, { multi: true })
-- 删除users文档下 年龄为16的的数据的一条数据
-- db.users.remove({ age: 16 }, { justOne: true })
备份整个数据库
mongodump -h 127.0.0.1:27017 --authenticationDatabase [数据库] -u [用户] -p [密码] -o [备份地址]
-h 地址
-d 数据库名称
-u 用户名
-p 密码
-o 输出地址
--authenticationDatabase 验证账户的数据库