最新要闻

广告

手机

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

家电

热点在线丨MongoDB(二)

来源:博客园

MongoDB概念解析

1、MongoDB vs SQL

2、数据库

  • 一个MongoDB可以建立多个数据库,其中默认数据库为“db”,存储在data目录中


    【资料图】

  • MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合、权限,不同数据库存储在不同的文件

  • show dbs:显示所有的数据库列表

  • db:可以显示当前数据库对象或集合
  • use:连接到指定的数据库,如果不存在则可以创建一个数据库
  • 数据库的名称要求:

    • 不能是空字符串

    • 不得含有" "(空格)、.、$、/、\和\0 (空字符)

    • 应该全部小写

    • 最多为64个字节

    • 保留数据库名:admin(拥有所有数据库的权限)、local(永远不会被复制)、config(分片设置)

3、文档(Document)

  • 文档是一组键值对(BSON),MongoDB的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型
  • 注意:

    • 文档中的键值对是有序的

    • 文档中的值不仅可以使在双引号里的字符串,也可以是其他数据类型,甚至可以是另外一个文档

    • MongoDB区分类型和大小写

    • MongoDB的文档不能有重复的键

    • 文档的键是字符串,除了少数例外,键可以使用任意的UTF-8字符

  • 文档命名规范:

    • 键不能含有空字符,\0用来表示键的结尾

    • .和$符号有特别的意义,只有在特定的环境下才可以使用

    • 以下划线"_"开头的键是保留的(不是严格要求的)

4、集合

  • 集合就是MongoDB的文档组,类似于关系型数据库中的表

  • 集合存在于数据库中,集合没有固定的结构,意味着你可以对集合插入不同格式和类型的数据

  • 当第一个文档插入时,集合就会被创建

1、合法的集合名

  • 集合名称不能是空字符串

  • 集合名不能含有空字符,只能再结合结尾表示

  • 集合名称不能以“system.”开头,这是为系统集合保留的前缀

  • 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$

2、Capped collections

  • capped collections就是固定大小的集合

  • 它有很高的性能以及队列过期的特性,是高性能的自动的维护对象的插入顺序

5、元数据

  • 在MongoDB中,元数据(Metadata)是用于描述和管理数据库、集合和文档的信息。它包含了关于这些对象的属性、结构和配置的数据。

  • 元数据在MongoDB中非常重要,它提供了对数据库和集合的结构、配置和性能等方面的了解,帮助管理员和开发人员有效地管理和操作MongoDB数据库。

6、数据类型

1、常用数据类型

2、ObjectId

  • 类似于唯一主键,可以很快的去生成和排序,包含12bytes

  • 由于 ObjectId 中保存了创建的时间戳,所以你不需要为你的文档保存时间戳字段,你可以通过 getTimestamp 函数来获取文档的创建时间

3、字符串

  • BSON 字符串都是 UTF-8 编码

4、时间戳

  • 时间戳是指特定事件发生时的标记或记录,通常以数字形式表示。它表示自某个参考点以来经过的时间量,以秒、毫秒或其他单位进行测量。

  • BSON 有一个特殊的时间戳类型用于 MongoDB 内部使用,与普通的 日期 类型不相关。 时间戳值是一个 64 位的值。

  • 时间戳的起点通常是某个特定的时刻,称为"纪元"(epoch)。最常用的纪元是1970年1月1日格林威治标准时间(UTC)的午夜。在Unix和类Unix系统中,时间戳通常表示自此纪元以来经过的秒数。例如,当前时间的时间戳是一个表示自1970年1月1日以来的秒数。

  • 时间戳还可以包含更精确的时间信息,例如毫秒级或微秒级时间戳,以提供更高的时间分辨率。在这种情况下,时间戳可能包括小数部分,表示秒的小数值。

  • 前32位是一个 time_t 值(与Unix新纪元相差的秒数),后32位是在某秒中操作的一个递增的序数

  • BSON 时间戳类型主要用于 MongoDB 内部使用。在大多数情况下的应用开发中,你可以使用 BSON 日期类型。

4、日期

  • 日期类型是有符号的, 负数表示 1970 年之前的日期。

关键词: