MongoDB使用
MongoDB安装
1、运行MongoDB:
1、docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo
- -p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
- -v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
- –name 为设置该容器的名称
- -d 设置容器以守护进程方式运行
2、进入Mongo内并创建用户
- 使用连接工具连接,此时的mongodb还是在裸奔状态,没有账号密码;使用mongodb桌面客户端可以直接连接,
- 或者使用 docker exec -it containerid mongo admin:管理员身份进入
- 创建MongoDB管理员用户:
db.createUser({
user: 'root',
pwd: '123456',
roles: [{
role: 'userAdminAnyDatabase',
db: 'admin'
}, 'readWriteAnyDatabase']
});
【user:‘root’ 】:设置用户名为root
【pwd:‘123456’】:设置密码为123456
【role:‘userAdminAnyDatabase’】:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
【db: ‘admin’】:可操作的数据库
【‘readWriteAnyDatabase’】:赋予用户读写权限
3、指定auth重新运行服务
- 使用密码运行:docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth
- 创建一个业务数据库和对应的读写账户
use test_db;
db.createUser({
user: 'test_db',
pwd: '123456',
roles: [{
role: "readWrite",
db: "test_db"
}]
});
3.此时项目中可以使用此数据库连接:
mongodb://test_db:123456@127.0.0.1:27017/test_db
4、MongoDB基本操作:
-
进入容器:docker exec -it mongoId mongo admin
-
使用指定库:use test_db db.auth("test_db","123456");
-
添加数据: db.user.insert({"name":"zhangsan","age":18});
-
查询数据:---查询所有 db.user.find();
-
更新数据:db.user.update({age: 16}, {$set: {person_name: "张三"}})
db.tb_person.update({age: 16}, {$set: {person_name: "张三"}}, {upsert: true, multi: true}) -- upsert (默认false ) : 可选,如果不存在update的记录,是否保存。true为保存。 -- multi(默认false ) : 可选,默认只更新第一条记录。true:更新所有匹配数据 -- writeConcern :可选,抛出异常的级别 -
删除数据:-- 普通删除 db.user.remove({person_name: "张三"})
db.tb_person.remove({person_name: "张三"}, false) -- justOne: (可选)true:删除第一个匹配记录,false:删除所有 -- writeConcern :(可选)抛出异常的级别 -
查询数据:
-- 查询person_name=张三 或者 年龄 18 db.tb_person.find({$or:[{person_name: "张三"},{age:18 }]}) -- 分页查询 以年龄升序排序 跳过第1条数据,查询后面2条数据 db.tb_person.find().sort({age:1}).limit(2).skip(1) -- 查询年龄小于等于21的数据,以年龄降序排序 db.tb_person.find({age:{$lte:21}}).sort({age:-1})
本文来自博客园,作者:渡——已,转载请注明原文链接:https://www.cnblogs.com/dotnetSunset/p/17317651.html

浙公网安备 33010602011771号