• 1.MongoDB介绍


    简介

    MongoDB是一个开源的,非关系型数据库,是用C++开发的;
    官网地址
    MongoDB 按照BJSON格式存储数据,比传统的行列更具有表现力,它可以存储多个子集合,也可以存储数组;

    • 传统表的列数都是固定的,而MongoDB则不必遵循;
    • 传统表的列类型是固定的,而MongoDB可以混合列类型;
    • MongoDB也可以指定就校验类型;

    MongoDB是文件型数据库,不是文件数据库,它适合存储文件,别的也都可以存储;

    概念对比

    SQL术语/概念 MongoDB术语/概念 解释/说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    table joins 表连接,MongoDB不支持,但它支持子文档查询
    primary key primary key 主键,MongoDB自动将_id字段设置为主键

    _id 是主键 ,而不是id/ID需要牢记,多学习一些基础知识减少试错的范围;

    特点和功能

    高性能、易部署、易使用、存储数据非常方便

    • 支持子对象,数组,以及嵌套对象
    • 灵活动态的表结构
    • 面向集合存储,适合存储对象及JSON形式的数据
    • 支持动态查询 支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组
    • 使用高效的二进制数据存储
    • 自动处理碎片
    • 支持C#、Java、Python,Js,C++ 驱动比较多
    • 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能;

    适用场合

    • 网站数据:
    • 缓存
    • 大尺寸、低价值的数据
    • 高伸缩的场景:
    • 用于对象以及JSON数据的存储:Mongo的BJSON 数据格式非常适合文档化格式的存储以及查询;

    实际例子

    数据自然,高效,面向对象

    eg1:比如一条客户记录,下面是BDocument中展示的样子,

    {
      "_id": "5cf0029caff5056591b0ce7d",
      "firstname": "Jane",
      "lastname": "Wu",
      "address": {
        "street": "1 Circle Rd",
        "city": "Los Angeles",
        "state": "CA",
        "zip": "90404"
      },
      "hobbies": ["surfing", "coding"]
    }
    
    

    我若用关系型数据库那么我应该建立三个表,当数据过多的时候关联性查询是特别慢的;

    面向对象是指:因为对象里面有子对象,对象里面有数组,关系型数据库一行记录就是一个对象;

    eg2:比如淘宝数据,建立一个商品,商品有属性,有多规格

    比如规格颜色:红,黑,白

    比如尺寸:大中小

    比如价格:50,100,50,100,50,100,50,100,100

    比如库存:

    这里特别说明:属性有

    eg3:一条主表记录 关联着几条明细表记录

    常见问题

    • MongoDB不直接支持SQL语句,它有自己的一套查询语法,但是我们可以用Linq
  • 相关阅读:
    反射学习笔记
    路由机制
    缓存笔记
    进程和线程
    垃圾回收机制
    堆和栈
    值类型和引用类型及参数传递
    招到一个程序员很难吗?
    全面讲解:委托、事件
    struts2入门实例
  • 原文地址:https://www.cnblogs.com/maanshancss/p/12937762.html
Copyright © 2020-2023  润新知