是什么?

  • 由C++语言编写的

  • 是一个文档数据库

    将数据存储为一个文档,数据结构由键值(key=>value)对组成

    MongoDB 文档类似于 JSON 对象

    字段值可以包含其他文档,数组及文档数组

MongoDB是一个NoSQL数据库系统:

  • 一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表
  • 而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行

特点

  • 丰富的JSON文档
    • 处理数据的最自然和最有效的方式
    • 支持数组和嵌套对象作为值
    • 允许灵活和动态的模式
      Study - MongoDB 浅析
  • 强大的查询语言
    • 丰富且富有表现力的查询语言,允许您按任何字段进行筛选和排序,无论它在文档中的嵌套方式如何

    • 支持聚合和其他现代用例

      例如基于地理的搜索,图搜索和文本搜索

    • 查询本身就是JSON,因此很容易组合。不再需要连接字符串来动态生成SQL查询
      Study - MongoDB 浅析

  • 关系数据库的所有功能,以及更多…
    • 完整的ACID交易
    • 支持查询中的联接
    • 两种类型的关系而不是一种:引用和嵌入
      Study - MongoDB 浅析

概念

mongodb中基本的概念是文档集合数据库,下面我们进行简单介绍:
Study - MongoDB 浅析
通过下图实例,我们也可以更直观的了解Mongo中的一些概念:
Study - MongoDB 浅析
Study - MongoDB 浅析

数据库

  • 一个mongodb中可以建立多个数据库
  • MongoDB的默认数据库为"db",该数据库存储在data目录中
  • MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中
  • 简单命令:
    • show dbs
      可以显示所有数据的列表
    • db
      可以显示当前数据库对象或集合
    • use ‘xxx’
      可以连接到一个指定的数据库
  • 命名
    • 数据库也通过名字来标识。数据库名可以是满足以下条件的任意UTF-8字符串:
      • 不能是空字符串(" ")
      • 不得含有’ '(空格)、.、$、/、\和\0 (空字符)
      • 应全部小写
      • 最多64字节
    • 有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库:
      • admin:从权限的角度来看,这是root数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限
      • local: 这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合
      • config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息

文档

  • 文档是一组键值(key-value)对(即 BSON)。
  • MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点
  • 需要注意的是:
    • 文档中的键/值对是有序的
    • 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符
    • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)
    • MongoDB区分类型和大小写
    • MongoDB的文档不能有重复的键

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-03-08
  • 2022-12-23
  • 2021-04-10
  • 2021-10-29
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-23
  • 2022-01-26
  • 2021-12-10
  • 2021-07-29
  • 2021-07-30
  • 2021-12-24
  • 2021-08-11
相关资源
相似解决方案