当前位置:嗨网首页>书籍在线阅读

10-理解文档

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

1.3.2 理解文档

在MongoDB数据库中,文档表示单个实体的数据,而集合包含一个或多个相关的文档。MongoDB和SQL的一个主要差别在于文档不同于行:行数据是扁平的,每列都包含行中的一个值,而在MongoDB中,文档可包含嵌入的子文档,提供的数据模型与应用程序的要求更一致。

事实上,MongoDB中表示文档的记录是以BSON(一种轻量级二进制JSON)的方式存储的。BSON是一种轻量级二进制JSON,使用对应于JavaScript属性/值对的字段/值对来定义文档中存储的值。几乎不需要做任何转换,就能将MongoDB记录转换为您可能在应用程序中使用的JSON字符串。

例如,MongoDB中文档的结构可能类似于下面这样,其中包含字段name、version、languages、admin和paths:

{
  name: "New Project",
  version: 1,
  languages: ["JavaScript", "HTML", "CSS"],
  admin: {name: "Brad", password: "****"},
  paths: {temp: "/tmp", project:"/opt/project", html: "/opt/project/html"}
}

注意到在这个文档结构中,包含类型为字符串、整数、数组和对象的字段/属性,就像JavaScript对象一样。表1.1列出了BSON文档支持的字段值数据类型。

字段名不能包含空格、句点(.)和美元符号($)。另外,字段名_id保留用于存储对象ID(Object ID)。字段_id包含系统中独一无二的ID,这种ID由下列几部分组成:

  • 从新纪元开始的秒数(4字节)。
  • 3字节的机器标识符。
  • 2字节的进程ID。
  • 3字节的计数器(该计数器的起始值是随机的)。

MongoDB文档最大不能超过16MB,这旨在避免查询占用太多RAM或频繁访问文件系统。文档也许根本不会接近这样的规模,但设计包含文件数据的复杂类型时必须牢记这种最大文档限制。