NoSQL note.03


MongoDB是一款开源、跨平台、分布式,具有大数据处理能力的文档存储数据库。
MongoDB是由C++语言编写的非关系型数据库,也是一个基于分布式文件存储的开源数据库系统。

概述

1、发展历程

2、简介

(1)可扩展,敏捷 (2)语法类似面向对象、关系型数据库查询语句(支持建立索引)
(3)面向集合的文档型数据库 (4)模式自由的文档型数据库

3、优势

(1)易用性:无“行”,文档中嵌入“文档”、“数值”,无预定义模式
(2)高性能:动态填充,对文件预分配,高效查询
(3)高可用性:(副本集)
(4)易扩展型:横向扩展,分片处理

体系结构

1、发展历程

MongoDB的逻辑结构是体系结构的一种形式,它是一种层次结构,主要由文档(Document)、集合(Collection)、数据库(DataBase)这三部分组成。
MongoDB的逻辑结构是面向用户的。

  • 数据库
    一个数据库可创建多个集合,系统默认提供admin、local、config、test数据库.
    admin数据库:存储数据库账号的相关信息。
    local数据库:存储限于本地单台服务器的任意集合。
    config数据库:存储分片集群中与分片相关的元数据信息。
    test数据库,是MongoDB默认创建的一个测试库,默认连接。
  • 集合
    一般集合:通常称为集合,没有固定的格式,数据具有一定关联性
    上限集合:可以限制集合的容量大小,在数据存满时,从头开始覆盖最开始的文档,从而进行循环写入。
  • 文档
    以键值对的形式存储在集合中,其中,键用于唯一标识一个文档,为字符串类型,值可以是各种复杂的文件类型,(BSON)
    文档中不能有重复的键,每个文档都有一个默认的_id键。
    MongoDB单个文档大小上限为16MB
    特点:(1)键值对有序 (2)区分字符串和数字 (3)区分大小写

数据类型

  • 数字类型:MongoDB支持三种数字类型(即32位整数(Int32)、64位整数(Int64)和64位浮点数(Double))
  • 日期类型:MongoDB会将存储的日期自动保存成ISODate日期类型。
  • 数组类型:MongoDB数组是一系列元素的集合,使用中括号**[ ]**表示数组。数组元素允许重复且位置固定,数组中可以存在不同数据类型的元素。
  • ObjectId类型:ObjectId 是一个12字节BSON类型,由一组十六进制的24位字符串构成,每个字节存储2位十六进制字符,总共使用了12字节的存储空间。
    Time:前4个字节表示时间戳 Machine:后的3个字节表示所在主机的唯一标识符
    PID:后2个字节表示进程标识符 INC:后3个字节是一个随机值 内嵌文档 code类型

使用规范

数据库,集合,文档统一使用规范 编码格式必须为UTF-8字符,不可以出现空字符串,命名中不可含有“\0”字符即空字符,建议不要使用数字开头
名称区分大小写(建议全部小写),不使用数字开头,名称的长度限制为64个字节

  • 数据库
    只能使用ASCII码表中的字母和数字,禁止使用下划线(“_”)以外的特殊字符,
    建议数据库命名规则为db_xxxx
  • 集合
    不能出现以“system.”开头的集合名称,这是系统集合保留的前缀
    建议不要使用“_”(下划线)和“.”(点)以外的特殊字符
    命名不可包含字符“$”,集合命名规则为t_xxxx
  • 文档
    文档中的键建议全部为小写,不建议以数字或“_”开头
    _id值不建议自定义,同一文档中,不可以存在相同名称的键
    建议尽量不要使用数组字段作为查询条件

猜你喜欢

转载自blog.csdn.net/weixin_47594116/article/details/114855283