MongoDB入门

MongoDB数据库

https://www.liuqingzheng.top/db/Mongodb系列/Mongodb快速入门/

1 MongoDB介绍

# MongoDB数据库简单介绍
  是一个面对文档(document-oriented)的数据库,不是关系型数据库
  是以JSON格式在硬盘上存储数据


# 与关系型数据库的对应关系
MySQL     MongoDB       ES
 库          库          索引
 表          表/集合      类型(映射)
一行数据     文档(json)    文档

  # MongoDB支持表连接,也有索引,默认自动将字段("_id")就是主键索引
    
    
# 一个集合---> 一个表---> 一组文档(多条json)

2 MongoDB和管理工具安装

### 1 MongoDB服务 安装
# 1.下载地址 
  https://www.mongodb.com/download-center/community  选择平台下载
        
  一路下一步 全部/自定义安装,勾选安装为服务  
    # 不要勾选mongodb-compass(官方客户端工具 下载很慢 很少用)
    
    
# 2.bin路径下的配置文件 mongod.cfg
  # 数据存储
  storage:
    dbPath: C:\Program Files\MongoDB\Server\4.2\data
    journal:
      enabled: true
        
  # 日志存储
  systemLog:
    destination: file
    logAppend: true
    path:  C:\Program Files\MongoDB\Server\4.2\log\mongod.log
            
  # 网络端口
  net:
    port: 27017
    bindIp: 127.0.0.1
    
    
# 3.windows以服务启动方式,本质就是一条命令启动
  mongod.exe --config  "mongod.cfg"  --service
    
    
# 4.Linux上 启动/关闭mongodb
  # 以服务方式 启动
  net start MongoDB
  net stop MongoDB
  
  # 以命令方式 启动  以配置文件
  mongod --config "mongod.cfg"

  # 开启登录/连接 认证    mongodb服务 默认不需要认证
  mongod --config "mongod.cfg" --auth    


# 5.mongodb 登录
  mongo  # 后面等同于 mysql和redis-cli
  # 远程连接:./mongo --host 10.0.0.5 --port 27017


### 2 客户端工具:robo3t 安装  (等同于Navicat)
  一路下一步 

3 账号管理

# 账号管理:就是 某个库的用户管理

# 注意: 每个库,都有各自的用户管理 user
  1.要管理哪个库,就在哪个库下建账号
  2.全局管理员账号,要建在amdin库下

### 1 管理工具robot3t中创建:点点点


### 2 命令创建

# 1.创建账号
use admin  # 切换到某个数据库中
           # 全局变量db,代表当前数据库

db.createUser(
  {
    user: "root",  # 用户名
    pwd: "123",    # 密码
    roles: [ { role: "root", db: "admin" } ]  # 角色权限:针对哪个库,有什么权限  可管理多个库
  }
)


# 2.用户登录连接:  注意使用双引号而非单引号
# 以管理员登陆
./mongo --host 10.0.0.5 --port 27017 -u "root" -p "123" --authenticationDatabase "admin"

# 以用户lqz登陆 (只对test库有权限)
./mongo --host 10.0.0.5 --port 27017 -u "lqz" -p "123" --authenticationDatabase "test"

# 也可以在登录之后用db.auth("账号","密码")登录
mongo
show dbs;
use admin;
# db是一个全局变量,代表当前所有库
db.auth("root","123")
show tables;

4 基本数据类型

# 1.null:用于表示空或不存在的字段
d={'x':null}

# 2.布尔型:true和false
d={'x':true,'y':false}

# 3.数值
d={'x':3,'y':3.1415926}

# 4.字符串
d={'x':'egon'}

# 5.日期
d={'x':new Date()}
d.x.getHours()

# 6.正则表达式
d={'pattern':/^egon.*?nb$/i}

  # 正则写在//内,后面的i代表:
    i 忽略大小写
    m 多行匹配模式
    x 忽略非转义的空白字符
    s 单行匹配模式

# 7.数组
d={'x':[1,'a','v']}

# 8.内嵌文档
user={'addr':{'country':'China','city':'YT'}}
user.addr.country

# 9.对象id:  是一个12字节的ID,是文档的唯一标识,不可变  主键索引!!!
d={'x': ObjectId()}

  # ObjectId对象:可以保证相同进程的同一秒产生的ObjectId也是不一样的  ===》 可用于分布式id的生成

5 CURD操作

posted @ 2022-12-04 22:10  Edmond辉仔  阅读(26)  评论(0编辑  收藏  举报