Comparison/Sort Order

在本页面

比较不同BSON types的值时,MongoDB 使用以下比较 Sequences,从最低到最高:

Numeric Types

为了进行比较,MongoDB 将某些类型视为等效。例如,数字类型在比较之前先进行转换。

Strings

Binary Comparison

默认情况下,MongoDB 使用简单的二进制比较来比较字符串。

Collation

3.4 版的新功能。

Collation允许用户为字符串比较指定特定于语言的规则,例如字母大写和重音符号的规则。

整理规范具有以下语法:

{
   locale: <string>,
   caseLevel: <boolean>,
   caseFirst: <string>,
   strength: <int>,
   numericOrdering: <boolean>,
   alternate: <string>,
   maxVariable: <string>,
   backwards: <boolean>
}

指定排序规则时,locale字段为必填字段;所有其他排序规则字段都是可选的。有关字段的说明,请参见Collation Document

如果没有为集合或操作指定排序规则,则 MongoDB 使用先前版本中使用的简单二进制比较进行字符串比较。

Arrays

对于数组,小于比较或升序排序比较数组的最小元素,大于大于或降序排序比较数组的最大元素。这样,当将其值为单元素数组(例如[ 1 ])的字段与非数组字段(例如2)进行比较时,比较是在12之间。比较空数组(例如[ ])会将空数组视为小于null或缺少字段。

Objects

MongoDB 对BSON个对象的比较使用以下 Sequences:

日期和时间戳

在版本 3.0.0 中更改:日期对象在时间戳对象之前排序。以前的 Date 和 Timestamp 对象一起排序。

Non-existent Fields

比较将不存在的字段视为空 BSON 对象。这样,对文档{ }{ a: null }中的a字段进行排序将按照排序 Sequences 将文档视为等效。

BinData

MongoDB 按以下 Sequences 对BinData进行排序:

首页