MongoDB权威指南(第3版)
上QQ阅读APP看书,第一时间看更新

2.1 文档

文档是 MongoDB 的核心概念:它是一组有序键值的集合。文档的表示形式因编程语言而异,但大多数语言具有自然匹配的数据结构,比如映射、哈希表或字典。例如,在 JavaScript 中,文档表示为对象:

{"greeting" : "Hello, world!"}

这个简单的文档只包含一个键,即 "greeting",对应的值为 "Hello, world!"。大多数文档会比这个例子更复杂,并且通常会包含多个键–值对:

{"greeting" : "Hello, world!", "views" : 3}

如上所示,文档中的值不仅仅是“二进制大对象”,它们可以是几种不同的数据类型之一(甚至可以是一个完整的嵌入文档,请参阅 2.6.4 节)。在本例中,"greeting" 的值是一个字符串,而 "views" 的值是一个整数。

文档中的键是字符串类型。除了少数例外的情况,可以使用任意 UTF-8 字符作为键。

  • 键中不能含有 \0(空字符)。这个字符用于表示一个键的结束。
  • . 和 $ 是特殊字符,只能在某些特定情况下使用,后文会详细说明。通常来说,可以认为这两个字符属于保留字符,如果使用不当,那么驱动程序将无法正常工作。

MongoDB 会区分类型和大小写。例如,下面这两个文档是不同的:

{"count" : 5}
{"count" : "5"}

下面这两个文档也不同:

{"count" : 5}
{"Count" : 5}

需要注意,MongoDB 中的文档不能包含重复的键。例如,下面这个文档是不合法的。

{"greeting" : "Hello, world!", "greeting" : "Hello, MongoDB!"}