为了账号安全,请及时绑定邮箱和手机立即绑定

最新版MongoDB入门与案例实战

难度入门
时长 4小时19分
学习人数
综合评分10.00
5人评价 查看评价
10.0 内容实用
10.0 简洁易懂
10.0 逻辑清晰
  • 什么时候分片:

      - 数据量过大,单机备份恢复过久

      - 副本集满足不了高并发写入 (一般情况下副本集够用)

    分片特点:

      - 对应用透明 ;数据自动平衡 ;支持动态扩容

    ---------------------

    后面详细介绍了副本集合创建的命令,再 linux 下敲命令展示

    查看全部
  • 副本集架构:

    Primary(主) -> Secondary(副) -> Arbiter(心跳,选举) -> Primary

    原理:主节点变化记录在 uplog 中,更新到副节点,由一个线程持续监听

    --------------

    演示: use 副节点数据库xx,看到里面没有数据

    use 主节点,写入数据 ,再到副节点查询  

    在副节点查询时要执行 rs.secondaryok() 表示允许查询副节点

    再查副节点看到数据已经写入了

    查看全部
  • mongodb 数据目录:

     - 用linux 命令  ll 能看到 collection-*.wt  能看到文档文件

     - index-*.wt  能看到索引文件  

     - sizeStorer.wt 为容量信息



    JSON  k-v

    BSON 类似 JSON 的紧凑型 JSON 二进制 

    (将元素长度存储在头部,能加快检索速度)

    查看全部
  • 使用压测工具 ycsb

    编辑  workloads/workloada  添加 mongodb 的 URL

    查看全部
    0 采集 收起 来源:动手实战-对MongoDB进行压测

    笔记审核中笔记正在审核中,仅自己可见 2023-11-24

  • 演示了使用 go 语言进行 crud 操作:

    操作的的返回为两个对象:结果对象,err对象

    查看全部
  • 使用 go 语言环境进行 crud 操作

     1. 连接到要操作的库和集合

       collection := client.Database("martin").Collection("insertonetest")

     2. 写入数据

       insertOneResult ,err:=collection.InsertOne(ctx, bson.M{"name":"xx","gender":"1"})

       //返回的 err 表示是否成功

       //返回的 insertOneResult  表示执行结果

       

    查看全部
  • 用 go 语言操作 mongoDB 

    1. 安装 go 语言安装包 

    2. 安装 编译器 GoLand 

    GOPROXY=https://guo (国内代理地址)


    赋值:基本语法用 % 来代替变量值,输出:Print Printf Println

    (后面写了个利用 time.Sleep 实现倒计时的例子)

    查看全部
  • db.setProfilingLevel(1,100)

    1表示开启慢查询, 100表示超过100为慢查询

    db.setProfilingLevel(0)  关闭慢查询


    db.getProfilingLevel()   查看是否开启慢查询 (1表示已开启,会将慢查询语句写入系统)


    造一条慢查询语句:

      1.先插入数据 for(var i=1 ; i<=30000 ; i++)

      2.再用 find 命令查询靠后面几位的数据


    执行:  db.system.profile.find()  可以看到已经记录到慢查询里的语句

    查看全部
    0 采集 收起 来源:MongoDB 慢查询

    2023-11-22

  • 查看执行计划  .explain(true)

    在显示的 json 中看字段:

    "executionStats"

         "executionTimeMillis" :  x(扫描毫秒数)

         "totalDocsExamined"  :  x(扫描文档数)

    查看全部
  • 创建索引 createIndex()  分升序索引和降序索引

    默认创建 b+树索引, 创建全文索引(text)

    创建哈希索引({"name":"text"}) 不支持范围和多键

    创建地理位置索引 2d   createIndex({"xx":"2d"})


    查询操作,用到地理位置索引 

    {$geoWithin: {$box :[[10,10],[20,20]] }}

    查看全部
  • 查询升序   find().sort({"age":1})

    查询降序  find().sort({"age":-1})


    求平均值  

    aggregate ([{'$group' : {_id:'$class', 'avg_score': {'$avg' : '$score'} }} ])

    查看全部
  • 创建集合 createCollection 

    查看集合 show tables

    插入数据 save 或 insert  

    插入多行 insertMany


    直接查询 find  (默认20条,输入 it 翻页)

    条件查询 find({name:'xx'}) 

    删除查询 remove({name:'xx'})  


    条件查询 find({age: {$gt: 10}}) 

    条件查询 find({$or:[{"age":10} ,{"name","wang"} ] }) 

    查看全部
  • 无密码连接 直接输入 mongo ,有密码连接(先设置用户密码,重启mongo);

    选择数据库, insert数据,删除数据库;

    创建普通用户(只能修改查询)

    ----------------------

    客户端工具:compass  (我之前用的NoSQL Manager for MongoDB)

    查看全部
  • database  数据库(每个数据库自己的集合权限,每个数据库存储在不同的文件)


    collection 相当于表 (同一个集合里可以插入不同结构不同类型的数据)


    document 相当于行(键值对,bson ,区分大小写,不能重复)


    field 


    index  索引


    primary key ( _id 自动生成 )

    查看全部
  • 在linux 上安装 mongodb

    查看全部
首页上一页12下一页尾页

举报

0/150
提交
取消
课程须知
具有基本的nosql相关知识
老师告诉你能学到什么?
1、掌握MongoDB 安装部署, 2、根据相应应用场景,进行对应技术选型 3、掌握基本类型操作,集群部署,分片,备份恢复,监控 4、掌握Go语言连接和操作MongoDB

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!