BSON类型
BSON是一种用来存储文档和MongoDB执行远程调用的二进制序列化格式。BSON规范位于bsonspec.org。
BSON支持以下数据类型,每种数据类型都有一个相应的数字和字符串别名,可以使用别名和$type操作符基于类型匹配模式检索文档。
比较/排序顺序
当比较不同BSON类型的值时,MongoDB使用下面的比较顺序,从最低到最高:
1.MinKey (内部类型)
2.Null
3.Numbers (ints, longs, doubles)
4.Symbol, String
5.Object
6.Array
7.BinData
8.ObjectId
9.Boolean
10.Date
11.Timestamp
12.Regular Expression
13.MaxKey (内部类型)
对于比较而言,MongoDB将一些类型看作是等价的。例如,数值类型在比较之前执行转换。
3.0.0版本的变化:Date排在Timestamp 之前。之前的版本,Date和Timestamp 排序相同。
对于比较而言,MongoDB将不存在的字段看作空BSON 对象,例如,对{ } 和{ a: null }在排序中被看作是等价的。
对于数组而言,小于比较或者升序排序比较的是数组中最小的元素,大于比较或者降序排序比较的是数组中最大的元素。例如,比较一个只有一个元素的数组类型字段(例如 [ 1 ]))和非数组字段(例如2),比较的是1和2。
空数组(例如[])的比较被看作是小于空(null)或被看作丢失的字段。
对于BinData 类型,按下面顺序排序:
1.首先,按数据的长度或大小排序。
2.然后,按BSON一个字节子类型排序。
3.最后,一个字节一个字节地比较。
下面的章节针对特定的BSON类型描述了特别的注意事项:
ObjectId
ObjectId占据存储空间小、唯一、可被快速生成和索引。ObjectId类型值为12字节&#