MongoDB(二)

打印 上一主题 下一主题

主题 597|帖子 597|积分 1791

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 年之前的日期。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表