MongoDB数据库入门1


MongoDB属于非关系型数据库,增加对比


关系型数据库:

  1. 关系型数据库:

    • 使用二维表表示数据,数据联系
    • 数据库管理三个阶段:手工管理,文件管理,数据库管理
    • 存放数据,提供快速的增删改查操作
    • 备份、恢复、管理系统工具、编程语言的接口
  2. 关系型数据库概念:

    • 数据:表达信息的载体
    • 数据结构:数据组织的方式,数据之间的关系
    • 数据库:数据库科学,有效管理,有效存放,管理的仓库
    • DBMS:数据库管理系统,数据库管理软件
    • 表:由行,列组成,用来表示一定意义的数据
    • 字段:表的一列,表示实体的一个属性
    • 键:可以区分实体的属性(属性的组合)
    • 主键:从键中选择一个作为一个主键
    • 索引:提高查询效率,避免全表扫描
  3. 缺点:

    • 性 能:高并发数据量大的情况下,性能容易成为瓶颈
    • 数据一致性:写数据的时候需要加锁
    • 连表查询:容易导致性能下降
    • 扩展性:无法通过横向扩展性能和负载
    • 非结构化数据的处理:不方便

MongoDB(非关系型数据库)


非关系型数据库

  1. 优点:

    • 高并发,读写能力强
    • 易扩展
    • 弱化数据结构,降低数据一致性要求
  2. 缺点:

    • 技术成熟度不如关系型数据库
    • 通用性较差,不像SQL语言有统一标准
    • 操作冗长,容易混乱
    • 有些不支持jion、事务,一致性不如关系型数据库
  3. 使用关系型数据库的情况

    • 对数据一致性要求较低(低价值数据)
    • 数据库需要处理海量并发
    • 需要快速处理数据的情况
    • 方便构建非关系数据模型
  4. 分类:

    • 键值对:key-value 【redis
    • 文档型: 【MongoDB
    • 列存储: 【Hbase
    • 图形数据库: 【暂无
  5. MOngoDB 特点

    • 开发语言C++
    • 支持丰富的增删改查,最想像关系型数据库
    • 技术相对成熟,支持丰富的存储类型
    • 支持众多的编程语言接口
    • 使用方便,易于扩展 部署

Mongo 安装部署

  1. Ubuntu : sudo apt-get install mongodb

    • 默认安装到:/Var/lib/mongodb
    • 配置文件: /etc/mongodb.conf
    • 命令集:/usr/bin

MongoDB基本操作

  1. mogod --dbpath 目录

    • 功能:设置mongodb数据存储路径
    • e.g. mogod – dbpath /home/…
  2. mongod --port 端口号

    • 功能:修改服务监听端口 默认27017
  3. 启动mongo操作界面(mongo shell)

    • mongo(本机)
    • mongo IP:端口号 (远程)
    • mongo IP/数据库名 -u xxx -p xxx (使用指定用户名密码远程数据库)

Mongo数据库结构

  • 键值对–>文档–>集合–>数据库
关系型数据库MongoDb数据库
数据库数据库
集合(collection)
文档(document)
域(field)
索引索引
主键主键

MongoDB库操作

  1. 创建库:use databaseName
    说明: 进入某个库,当库不存在时实际写入数据时自动创建
    命名规则: 使用utf-8字符,长度不超过64,不能重名系统数据库
  2. 查看库:show dbs
    系统中有几个默认库
    admin 该库中成员拥有最高权限
    local存储跟本地数据库相关的数据,即使远程也不会复制到其他服务器
  3. 查看当前所在库: db
  4. 删除库: db.drop.Database()
    删除之前先进入该库

MongoDB数据的备份和恢复

  1. 备份:mongodump -h 主机 -d 库名 -o 目录

  2. 恢复:mongorestore -h 主机:端口 -d 库名 路径


MongoDB数据库监控

  1. mongostat
    mongotop 检测读写时长
  2. insert query update delete 每秒执行的增删改查的次数
  3. command 每秒运行的命令次数
  4. flushes 每秒清理缓存次数
  5. vsize 虚拟内存的使用量
  6. res 物理内存使用量

MongoDB集合操作

  1. 集合:相当于关系型数据库中的表,包含很多文档,没有特定的结构,有数据插入时自动创建

  2. 集合的使用:

    • 同一类数据放入一个集合
    • 尽量保持数据一致性
  3. 集合数据的操作:
    [注意事项:不能为空,不能含有\0 字符串,不能以system开头,不能含有系统保留前缀]

    • 创建集合: db.cresteCollection(‘collectionName’)
    • 插入集合:db.acct.insert({acct_nu:622345000001,acct_na:‘Jerry’,balance:5000.00})
    • 查看文档:db.acct.find().pretty()
    • 重命名集合: db.acct.renameCollection(‘newName’)

MongoDB文档操作

  1. 文档:文档时构成集合的基本单元,相当于关系型数据库的行,由一系列键值对组成

  2. 文档:键不能重复并且是有序的,区分大小写,使用UTF-8

  3. 操作:

    • 插入文档:

      • 同时插入两笔 :db.acct.insert([{acct_nu’6227000001’,acct_na:‘Rookie’,acct_type:1,balance:1882.67},{acct_nu’6227000001’,acct_na:‘Duke’,acct_type:1,balance:893445.67}])

      • save 插入(如果存在加上UUID则修改,不存在就插入): db.acct.save({"_id" : ObjectId(“5c10cf8792a9b98ba2418526”),acct_nu:‘3227000002’,acct_na:‘Ema’,acct_type:2,balance:9999.99})

        • objectID 长度:24
        • 8:文档创建时间
        • 6:机器ID
        • 4:进程ID
        • 6:流水号

MongoDB数据类型

  • Double 1 浮点型
  • String 2 字符串
  • Object 3 内嵌文档
  • Array 4 数组
  • Binarry Data 5 二进制
  • Objectid 7 系统生成object
  • Boolean 8 布尔值
  • Date 9 日期时间
  • NULL 10 空值
  • Integer 16/18 整形(32b/64b)
  • Timestamp 17 时间戳


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值