mongo

2021-08-19  本文已影响0人  古飞_数据

基本概念

mongdb一个NoSQL数据库,里面存储的是BSON(Binary Serialized Document Format,支持集群,高可用、可扩展。

mongdb中的一些概念
MongoDB MySQL
database database
collection table
json 二维表
不支持SQL SQL
_id 主键

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system


CentOS Linux release 7.6.1810 (Core)
version v3.4.24
yum 安装 mongo


安装前准备

关闭selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

添加安装源并安装

cat >/etc/yum.repos.d/mongodb-org-3.4.repo<<EOF
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
EOF

yum clean all
yum list | grep mongo
yum install -y mongodb-org

修改mongo的配置文件

vi /etc/mongod.conf

注释掉bindIp或者修改成当前机器的某一个ip地址

启动mongo

systemctl start mongod


mongo
mongo --host 192.168.11.29
mongo --host 192.168.11.29 --port 27018

使用或创建database

use bestway

创建集合(表)

db.createCollection("bike")

插入数据

db.bike.insert({"_id": 100001, "status": 1, "desc": "test"})
db.bike.insert({"_id": 100002, "status": 1, "desc": "test"})

查找数据(所有)

db.bike.find()

退出

exit
systemctl stop mongod

mongo安全认证配置###

如果修改了mongo存储是的目录那么一定要修改该目录的所属用户和组为mongod

chown -R mongod:mongod /mongo/


添加管理员用户

使用admin这个database

use admin

在没有开启认证的情况下,创建一个超级用户

db.createUser(
     {
       user: "lenovo",
       pwd: "123456",
       roles: [ {role: "root", db: "admin" }]
     }
)

修改mongo的配置文件/etc/mongod.conf,配置mongo的安全认证

security:
  authorization: enabled

重启mongo服务

service mongod restart

systemctl restart mongod

重新使用mongo shell连接

mongo

使用admin database

use admin

授权登录

db.auth("admin", "admin123")

创建一个bike数据库

use bike

添加一个普通用户,具备读写权限

db.createUser(
     {
       user: "xiaoniu",
       pwd: "123568",
       roles: ["readWrite"]
     }
)

使用小牛用户登录

mongo
use bike
db.auth("xiaoniu", "123568")

在database下创建collection

db.createCollection("users")
db.createCollection("bikes")

插入数据

db.users.insert( { name: "laozhao", age: 30 } )

查找

db.users.find()

db.users.update({'name':'laozhao'},{$set:{'age': 18}},{multi:true})

db.users.remove({'name': 'laoduan'})
db.users.remove({'name': 'laoduan'}, 1)

db.users.find({"name":"laoduan", "fv": 99.99})

查看当前db的索引

db.logs.getIndexes()

创建索引

db.logs.ensureIndex({"name":1})

删除索引

db.logs.dropIndex({"name":1})
上一篇下一篇

猜你喜欢

热点阅读