MongoDB介绍及Docker部署

一、概念

关系型数据库 (功能):mysql\sqllite\pgsql,用于数据的收集,表之间关系的,
一对一,一对多,多对多

nosql(性能):redis

向量数据库(检索搜索):es、faiss

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的

二、概念解析

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

三、常用命令

#查看已经存在的数据库
show dbs;
#创建数据库
use 数据库名
#删除数据库
db.dropDatabase()
#查看集合
show collections;
#创建集合
db.createCollection("news")
#删除集合
db.runoob.drop()
#添加数据
db.集合名.insert({'id':1,'title':'12'})
db.集合名.insert({'id':1,'title':'12','name':'sdfsd'})
#查询所有
db.集合名.find()
#删除数据
db.集合名.remove({"id":1})
#条件查询
db.集合名.find({"id":1})

四、Docker部署

docker search mongo
docker pull mongo
#运行容器
docker run -itd --name mongo -p 27017:27017 mongo --auth 
#进入容器
docker exec -it mongo mongo admin   mongo(运行的docker ps 中name)
#使用admin数据
#创建用户
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

#配制权限
db.auth('admin', '123456')

在MongoDB中,db.createUserdb.auth是两个非常重要的命令,它们用于用户管理和权限控制。下面是这两个命令的作用和使用场景的详细解释:

  1. 创建用户 (db.createUser):

    • 这个命令用于在MongoDB数据库中创建一个新的用户。
    • 参数解释:
      • user: 用户名,用于登录数据库的身份标识。
      • pwd: 密码,与用户名配对,用于验证用户身份。
      • roles: 角色数组,定义了用户在数据库中的权限。角色可以是内置角色,也可以是自定义角色。
    • 在你提供的命令中,创建了一个名为admin的用户,密码为123456,并赋予了以下角色:
      • { role: 'userAdminAnyDatabase', db: 'admin' }: 这个角色允许用户在admin数据库中管理用户(创建、删除、更新用户信息)。
      • "readWriteAnyDatabase": 这个角色允许用户读写任何数据库。

    这个命令通常在MongoDB的admin数据库中执行,因为admin数据库是MongoDB的管理和配置数据库,用于存储用户认证信息。

  2. 认证用户 (db.auth):

    • 这个命令用于验证用户的身份,如果认证成功,用户将获得之前创建的角色所赋予的权限。
    • 参数解释:
      • 第一个参数是用户名。
      • 第二个参数是密码。
    • 在你提供的命令中,使用用户名admin和密码123456进行认证。
    • 如果认证成功,你将能够以admin用户的身份执行后续的数据库操作,权限由之前创建用户时赋予的角色决定。

这两个步骤通常在MongoDB的初始化阶段执行,用于设置数据库的安全访问控制。首先创建用户并分配适当的角色,然后通过认证来确保只有拥有正确凭证的用户才能访问数据库。这是一种基本的安全措施,用于保护数据库免受未授权访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值