如何在Ubuntu使用MongoDB

147 阅读2分钟

在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')                 // 登录认证

参考链接1参考链接2

使用命令操作数据库

-- 显示所有数据库
-- 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 验证账户的数据库

在mac安装MongoDB

教程:github.com/mongodb/hom…