MongoDB基础以及一些聚合操作

本文介绍了MongoDB的基础知识,包括其非关系型数据库特性、文档模式设计和分片扩展。重点讲解了MongoDB的聚合框架,如管道(pipeline)、步骤(stage)及其在数据处理中的应用,同时对比了MQL与SQL的查询方式。
摘要由CSDN通过智能技术生成

MongoDB基础以及一些聚合操作

​ --洱涷zZ


前情提要
1.学习MongoDB的几大难点
  • MongoDB是一种非关系型数据库,从mysql转变到Mongo需要摒弃传统的关系型数据库理念,不然很有可能会用一种错误的方式去使用和设计
  • MongoDB基于JSON数据库模型,其鼓励使用更多的文档嵌套方式来减少多表关联的设计,从而达到易用,高性能的目的,但是这种反范式的文档模型设计,目前没有完整的理论支持,即:即使想系统的学习,也没有太好的书籍和材料供参考
  • MongoDB通过分片来进行横向扩展,分片的设计和调优相对复杂,主要是要考虑其本身的一些技术实现和底层原理,以及数据均衡带来的性能影响,这方面需要深度学习
2.学习MongoDB的目的
  • 理解MongoDB的意义,了解使用它的场景和价值
  • 什么是文档模式设计,以及其数据安全、事务…
  • 掌握进阶的架构设计方法以及实践的案例,比如:两地三中心,数据中台…
MongoDB的特色
MongoDB RDBMS(传统的关系型数据库)
数据模型 json文档模型 关系模型
数据库类别 OLTP OLTP
CRUD操作 MQL/SQL(非主流) SQL
高可用 复制集(默认高可用部署) 集群模式
横向扩展能力 通过原生分片完善支持(特色) 主从复制,集群和分片
索引支持 以B树为基础的全文索引、地理位置索引… B树,B+树,hash索引…
开发难度 复杂
数据容量 没有理论上限 千万、亿

注:OLTP(用来做前端交互式应用,也称为面向交易的处理过程,其基本特征是前台接收的用 户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操 作快速响应的方式之一)

​ OLAP(用来做后端离线批处理的分析型场景,对OLTP数据库中的数据进行再加工,从这 些海量的业务数据中提取出对企业决策分析有用的信息)

MongoDB的一些基础操作以及引伸的一些问题
1. MQL和SQL的条件查询对照表

在这里插入图片描述
在这里插入图片描述

2. 关于MongoDB基础增删改
  • 创建

    创建数据库
    use user;
    创建集合
    db.createCollection("phone");
    创建固定集合
    db.createCollection("company", {
        capped: true,
        autoIndexId: true,
        size:
            6142800,
        max: 10000
    });
    
  • 展示

    展示所有的数据库
    show dbs;
    展示所有的集合
    show collections;
    
  • 插入数据

    插入一条数据
    db.userDetail.insertOne({
        title: 'MongoDB',
        description: 'MongoDB 是一个 Nosql 数据库',
        by: 'xiaochen',
        url: 'www.baidu.com',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    })
    
    一次插入多条数据
    db.userDetail.insertMany([{
        title: 'MongoDB1',
        description: 'MongoDB 是一个 Nosql 数据库',
        by: 'xiaochen',
        url: 'www.baidu.com',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    },
        {
            title: 'MongoDB2',
            description: 'MongoDB 是一个 Nosql 数据库',
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值