为什么 BSON 类型 BSON 比较顺序很重要?
Why does BSON type BSON comparison order matter?
当我阅读 MongoDB 文档时,对于查询中的每个运算符,
例如 here、
文档总是提到
不同BSON类型值的比较见specified BSON comparison order.
我按照 link 转到该页面并阅读文档。我了解 BSON 是什么,但我不明白乳清 BSON 比较顺序在这种情况下是相关的。
问题:
BSON比较顺序有什么用?
为什么它在这里相关?
如果可能,请您举个例子好吗?
该列表试图告诉您,给定您要比较的两种 BSON 类型 - 例如字符串和数组,将如何比较它们? (因为必须将一个转换为另一个)
在文档中进一步举这个例子,假设你有一个集合,其中所有文档都有一个字段 arr
但类型不同(有些是数组,有些是数字)。你试试
db.coll.find().sort({arr: -1})
在这里,Mongo 将所有文档一起比较,以确定 return 它们的顺序。
1->13列出哪些类型优先的文档。例如,数字 (#3) 的优先级高于数组 (#6),因此在将数组与数字进行比较时,必须将数组转换为数字。
文档继续指出,通过根据排序顺序选择最大或最小元素来将数组转换为数字 (ascending/descending)。
What is the use of BSON comparison order?
用于比较两个值并确定它们是否相等或一个大于还是小于另一个。 MongoDB 中的所有值都表示为 BSON。
Why it is relevant here?
因为您正在查看比较运算符,并且您需要知道比较的含义。如果 $lt
returns 记录给定字段小于某个值,您需要知道 何时 字段中的值算作小于该值,当它没有时。当比较相同类型的两个值时,比较是由该类型的语义定义的(大部分是直观的,下面列出了一些具体细节)。但是比较和排序只有在 any 两个值是可比较的情况下才有用,因此如果比较两个不同的类型,也有定义结果的类型排序。
MongoDB 中的所有值都表示为 BSON。需要通过比较来决定哪些数据应该以何种顺序呈现。在比较不同BSON类型的值时,MongoDB使用以下比较顺序,从低到高:
MinKey (internal type)
Null
Numbers (ints, longs, doubles, decimals)
Symbol, String
Object
Array
BinData
ObjectId
Boolean
Date
Timestamp
Regular Expression
MaxKey (internal type)
详情请参考:-
https://docs.mongodb.com/manual/reference/bson-type-comparison-order/#bson-types-comparison-order
当我阅读 MongoDB 文档时,对于查询中的每个运算符, 例如 here、
文档总是提到
不同BSON类型值的比较见specified BSON comparison order.
我按照 link 转到该页面并阅读文档。我了解 BSON 是什么,但我不明白乳清 BSON 比较顺序在这种情况下是相关的。
问题:
BSON比较顺序有什么用? 为什么它在这里相关? 如果可能,请您举个例子好吗?
该列表试图告诉您,给定您要比较的两种 BSON 类型 - 例如字符串和数组,将如何比较它们? (因为必须将一个转换为另一个)
在文档中进一步举这个例子,假设你有一个集合,其中所有文档都有一个字段 arr
但类型不同(有些是数组,有些是数字)。你试试
db.coll.find().sort({arr: -1})
在这里,Mongo 将所有文档一起比较,以确定 return 它们的顺序。
1->13列出哪些类型优先的文档。例如,数字 (#3) 的优先级高于数组 (#6),因此在将数组与数字进行比较时,必须将数组转换为数字。
文档继续指出,通过根据排序顺序选择最大或最小元素来将数组转换为数字 (ascending/descending)。
What is the use of BSON comparison order?
用于比较两个值并确定它们是否相等或一个大于还是小于另一个。 MongoDB 中的所有值都表示为 BSON。
Why it is relevant here?
因为您正在查看比较运算符,并且您需要知道比较的含义。如果 $lt
returns 记录给定字段小于某个值,您需要知道 何时 字段中的值算作小于该值,当它没有时。当比较相同类型的两个值时,比较是由该类型的语义定义的(大部分是直观的,下面列出了一些具体细节)。但是比较和排序只有在 any 两个值是可比较的情况下才有用,因此如果比较两个不同的类型,也有定义结果的类型排序。
MongoDB 中的所有值都表示为 BSON。需要通过比较来决定哪些数据应该以何种顺序呈现。在比较不同BSON类型的值时,MongoDB使用以下比较顺序,从低到高:
MinKey (internal type)
Null
Numbers (ints, longs, doubles, decimals)
Symbol, String
Object
Array
BinData
ObjectId
Boolean
Date
Timestamp
Regular Expression
MaxKey (internal type)
详情请参考:- https://docs.mongodb.com/manual/reference/bson-type-comparison-order/#bson-types-comparison-order