原文链接:NoSQL——MongoDB
mongodb安装
按照官方网站 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ , 编辑 repo 文件。
1 | [root@ying01 ~]# cd /etc/yum.repos.d/ |
查看 yum list 当中新生成的 mongodb-org,并用 yum 安装所有的 mongodb-org。
1 | [root@ying01 yum.repos.d]# yum list|grep mongodb-org |
连接mongodb
连接配置
在 mongod.conf 文件中,添加本机 ip,用逗号隔开。
1 | [root@ying01 ~]# vim /etc/mongod.conf |
启动,并查看进程和端口。
1 | [root@ying01 ~]# systemctl start mongod |
连接数据库
直接连接1
[root@ying01 ~]
指定端口(配置文件没有明确指定)1
[root@ying01 ~]
远程连接,需要IP 和端口1
[root@ying01 ~]# mongo --host 192.168.112.136 --port 27017
mongodb 用户管理
进入数据库,创建用户
1 | [root@ying01 ~]# mongo |
语句释义:
1 | db.createUser( { user: "admin", customData: {description: "superuser"}, pwd: "admin122", roles: [ { role: "root", db: "admin" } ] } ) |
列出所有用户,需要切换到admin库
1 | > db.system.users.find() |
查看当前库下所有的用户
1 | > show users |
创建新用户
1 | > db.createUser({user:"ying",pwd:"www123",roles:[{role:"read",db:"testdb"}]}) |
删除用户
1 | > db.dropUser('ying') |
切换到 testdb 库,若此库不存在,会自动创建
1 | > use testdb |
要使用用户生效,需要编辑启动服务脚本,添加 –auth,以后登录需要身份验证
1 | [root@ying01 ~]# vim /usr/lib/systemd/system/mongod.service |
重启 mongod 服务
1 | [root@ying01 ~] |
现在直接访问,不加密码,不会查看数据库,因为需要认证
1 | [root@ying01 ~]# mongo --host 192.168.112.136 --port 27017 |
使用密码,身份认证,登录
1 | [root@ying01 ~] |
切换到db1下,创建新用户
1 | > use db1 |
MongoDB用户角色
1 | Read:允许用户读取指定数据库 |
mongodb创建集合及数据管理
在db1下,创建 mycol的集合
1 | [root@ying01 ~] |
语法:db.createCollection(name,options)
1 | name就是集合的名字 |
查看集合:show collections 或者使用show tables
1 | > show collections |
在集合Account中,直接插入数据。如果该集合不存在,则mongodb会自动创建集合
1 | > db.Account.insert({AccountID:1,UserName:"123",password:"123456"}) |
在集合中更新信息数据
1 | > db.Account.update({AccountID:1},{"$set":{"Age":20}}) //在集合Account中,第一条中,增加一项信息 |
查看所有文档:db.Account.find(),此时在第一条 有更新的信息
1 | > db.Account.find() |
查看指定的文档, db.Account.find({AccountID:2})
1 | > db.Account.find({AccountID:2}) //查看数据库集合Account中,ID为2的文档 |
移除指定的文档:db.Account.remove({AccountID:1})
1 | > db.Account.remove({AccountID:1}) //移除id为1d 的文档 |
删除集合:db.Account.drop()
1 | > db.Account.drop() //删除Account集合 |
重新创建集合col2
1 | > db.col2.insert({AccountID:1,UserName:"123",password:"123456"}) |
查看所有集合的状态:db.printCollectionStats()
1 | > db.printCollectionStats() |