消歧
下一页讨论了MongoDB Extended JSON v2。有关旧版MongoDB扩展JSON v1的讨论,请参阅 MongoDB扩展JSON(v1)。
有关mongo类型的Shell包装器方法,请参阅
mongo Shell中的数据类型。
JSON只能直接表示 BSON支持的类型的子集。为了保留类型信息,MongoDB将以下扩展添加到JSON格式。
两种格式都符合JSON RFC,并且可以由各种MongoDB驱动程序和工具进行解析。
以下驱动程序使用扩展JSON v2.0
|
|
|
对于使用旧版MongoDB扩展JSON v1的C#和Ruby,请参阅 MongoDB扩展JSON(v1)。
从4.2版开始:
bsondump |
使用扩展JSON v2.0(规范模式)格式。 |
mongodump |
对元数据使用扩展的JSON v2.0(规范模式)格式。需要 小费 在一般情况下,使用相应的版本
|
mongoexport |
默认情况下,以扩展JSON v2.0(轻松模式)创建输出数据。
如果与一起使用,则以扩展JSON v2.0(规范模式)创建输出数据。
--jsonFormat canonical |
mongoimport |
预期导入数据默认为扩展JSON v2.0(轻松模式或规范模式)。
如果
--legacy指定了选项,则可以识别扩展JSON v1.0格式的
数据。小费 在一般情况下,的版本 |
下面介绍了一些常见的BSON数据类型以及Canonical和Relaxed中的相关表示形式。
有关完整列表,请参见 https://github.com/mongodb/specifications/blob/master/source/extended-json.rst#conversion-table。
Array¶| 典范 | 轻松 |
|---|---|
| 其中数组元素如下: |
|
Binary¶| 典范 | 轻松 |
|---|---|
| 值如下: |
|
Date¶对于1970年和9999年之间的日期,包括:
| 典范 | 轻松 |
|---|---|
对于1970年之前或9999年之后的日期:
| 典范 | 轻松 |
|---|---|
| 值如下: |
|
Decimal128¶3.4版的新功能。
| 典范 | 轻松 |
|---|---|
| 值如下: |
|
Document¶| 典范 | 轻松 |
|---|---|
| 其中文件内容如下: |
|
Double¶对于有限数:
| 典范 | 轻松 |
|---|---|
对于无限数或NAN:
| 典范 | 轻松 |
|---|---|
| 值如下: |
|
Int64¶| 典范 | 轻松 |
|---|---|
| 值如下: |
|
Int32¶| 典范 | 轻松 |
|---|---|
| 值如下: |
|
MaxKey¶| 典范 | 轻松 |
|---|---|
MaxKey BSON数据类型比所有其他类型的数据类型比较高。有关BSON类型的比较顺序的更多信息,请参见 比较/排序顺序。
MinKey¶| 典范 | 轻松 |
|---|---|
MinKey BSON数据类型的比较低于所有其他类型。有关BSON类型的比较顺序的更多信息,请参见 比较/排序顺序。
ObjectId¶| 典范 | 轻松 |
|---|---|
| 值如下: |
|
Regular Expression¶| 典范 | 轻松 |
|---|---|
| 值如下: |
|
Timestamp¶| 典范 | 轻松 |
|---|---|
| 值如下: |
|
| 示例字段名称 | 规范格式 | 宽松格式 |
|---|---|---|
| “_ID:” | {“ $ oid”:“ 5d505646cf6d4fe581014ab2”}} | {“ $ oid”:“ 5d505646cf6d4fe581014ab2”}} |
| “ arrayField”: | [“ hello”,{“ $ numberInt”:“ 10”}] | [“你好”,10] |
| “ dateField”: | {“ $ date”:{“ $ numberLong”:“ 1565546054692”}} | {“ $ date”:“ 2019-08-11T17:54:14.692Z”} |
| “ dateBefore1970”: | {“ $ date”:{“ $ numberLong”:“-1577923200000”}} | {“ $ date”:{“ $ numberLong”:“-1577923200000”}} |
| “ decimal128Field”: | {“ $ numberDecimal”:“ 10.99”} | {“ $ numberDecimal”:“ 10.99”} |
| “ documentField”: | {“ a”:“ hello”} | {“ a”:“ hello”} |
| “ doubleField”: | {“ $ numberDouble”:“ 10.5”} | 10.5 |
| “ infiniteNumber” | {“ $ numberDouble”:“ Infinity”} | {“ $ numberDouble”:“ Infinity”} |
| “ int32field”: | {“ $ numberInt”:“ 10”} | 10 |
| “ int64Field”: | {“ $ numberLong”:“ 50”} | 50 |
| “ minKeyField”: | {“ $ minKey”:1} | {“ $ minKey”:1} |
| “ maxKeyField”: | {“ $ maxKey”:1} | {“ $ maxKey”:1} |
| “ regexField”: | {“ $ regularExpression”:{“ pattern”:“ ^ H”,“ options”:“ i”}} | {“ $ regularExpression”:{“ pattern”:“ ^ H”,“ options”:“ i”}} |
| “ timestampField”: | {“ $ timestamp”:{“ t”:1565545664,“ i”:1}} | {“ $ timestamp”:{“ t”:1565545664,“ i”:1}} |