快速上手:MongoDB数据库

网课地址

基本概念

  • 应用型数据库,支持海量数据存储
  • 支持副本机制、分片机制,为分布式应用而生
  • 可动态建模,没有特定字段格式
  • 以JSON格式为数据模型的文档型数据库
  • 相比关系型数据库MySQL,MongoDB性能更高
  • 原生支持数据分片、高可用、支持垂直与水平扩展
  • 索引支持:B+Tree、全文索引、地理位置索引等
  • db-engines 排名

 

  • 对应概念:集合对应表、字段对应列、内嵌数组/对象或引用字段对应表关联

快速实战

  1. 官网下载,解压,配置下环境变量
  2. 创建数据目录 默认为 /data/db
  3. 后台启动:mongod --fork --logpath /data/logpath/output.out
  4. 端口默认27017,IP默认绑定为127.0.0.1(早期出过事)
mongo //客户端连接
db //命令查看当前库
show databases //查看所有库
use demo //创建并选择demo库
db.members.insertOne({"name":"qinchen","age":19}); //插入数据
show tables / show collections //查看集合
db.members.find(); // 查询数据 _id 主键 默认自动生成,可手动指定,

// _id按时间基本有序,但不保证绝对有序,前面几个字节即表示时间戳

db.members.insertMany([{},{}]) // 批量插入多条数据,可配置Ordered有序无序
db.members.find({}).pretty() // 格式化结果
  1. 图形界面客户端
  2. writeConcern 安全级别 与 复制集 相关
  3. 条件查询支持:通过ID精准查询、按字段查询、多字段查询、嵌套查询(字段.属性)
  4. 查询可指定返回字段 .find({},{attr1:1,attr2:1}) 1 表示显示
  5. 条件支持:

  1. 支持模糊查询
  2. 支持复合组件:insert({_id:{p1:'110',p2:'180'}}) // 注意顺序
  3. attr1:{$exisits:true} 字段必须存在条件
  4. find().skip(1).limit(2).count(true) 跳过1条,最多取2条
  5. find().sort({attr1:1}) // 1 正序,-1倒序
  6. find({},{tag:{$slice:2}}) // 取tag数组前2个元素
  7. 更新数据: upateOne/updateMany | $set $unset $push $pop $pull $pullAll $addToSet
  8. 其他:$set 更新或新增字段 $rename 重命名字段 $inc 加减字段值 $mul 乘 $min 取最小值、$max 取最大值
  9. 删除文档 db.collection.remove(条件)
  10. 删除集合 db.collection.drop() // 删除所有数据及索引

其他问题

  • Redis与MongoDB,一个数据存内存,一个存磁盘
  • MongoDB事务机制出来不久,目前应用较少
  • 适合一些数据对象属性变化较频繁业务,比如商品详情
  • MongoDB核心业务一般应用较少,常用在部分大数据分析业务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值