mongodb查询值不为空_NoSQL之MongoDB——BSON与JSON类型

本文详细介绍了MongoDB中的BSON数据类型,包括比较排序顺序、ObjectId、String、Timestamp等,强调了ObjectId的生成原理和特点,以及Date类型的表示方式。此外,还讨论了MongoDB对JSON的扩展和解析器的支持情况。
摘要由CSDN通过智能技术生成

BSON类型

BSON是一种用来存储文档和MongoDB执行远程调用的二进制序列化格式。BSON规范位于bsonspec.org。

BSON支持以下数据类型,每种数据类型都有一个相应的数字和字符串别名,可以使用别名和$type操作符基于类型匹配模式检索文档。

11acd2b49ca0815d98c5979e12bfcd37.png

比较/排序顺序

当比较不同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字节&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值