消歧
下一页讨论了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}} |