MongoDB import and export utilities (i.e. mongoimport and mongoexport) and MongoDB REST Interfaces render an approximation of MongoDB BSON documents in JSON format.
The REST interface supports three different modes for document output:
MongoDB can process of these representations in REST input.
Special representations of BSON data in JSON format make it possible to render information that have no obvious corresponding JSON. In some cases MongoDB supports multiple equivalent representations of the same type information. Consider the following table:
| BSON Data Type | Strict Mode | JavaScript Mode (via JSONP) | mongo Shell Mode | 备注 |
|---|---|---|---|---|
|
{
"$binary": "<bindata>",
"$type": "<t>"
}
|
{
"$binary": "<bindata>",
"$type": "<t>"
}
|
BinData ( <t>, <bindata> )
|
<bindata> is the base64 representation of a binary string. <t> is the hexadecimal representation of a single byte that indicates the data type. |
|
{
"$date": <date>
}
|
new Date( <date> )
|
new Date ( <date> )
|
<date> is the JSON representation of a 64-bit signed integer for milliseconds since epoch UTC (unsigned before version 1.9.1). |
|
{
"$timestamp":
{
"t": <t>,
"i": <i>
}
}
|
{
"$timestamp":
{
"t": <t>,
"i": <i>
}
}
|
Timestamp( <t>, <i> )
|
<t> is the JSON representation of a 32-bit unsigned integer for seconds since epoch. <i> is a 32-bit unsigned integer for the increment. |
|
{
"$regex": "<sRegex>",
"$options": "<sOptions>"
}
|
/<jRegex>/<jOptions>
|
/<jRegex>/<jOptions>
|
<sRegex> is a string of valid JSON characters. <jRegex> is a string that may contain valid JSON characters and unescaped double quote (") characters, but may not contain unescaped forward slash (/) characters. <sOptions> is a string containing the regex options represented by the letters of the alphabet. <jOptions> is a string that may contain only the characters ‘g’, ‘i’, ‘m’ and ‘s’ (added in v1.9). Because the JavaScript and mongo Shell representations support a limited range of options, any nonconforming options will be dropped when converting to this representation. |
|
{
"$oid": "<id>"
}
|
{
"$oid": "<id>"
}
|
ObjectId( "<id>" )
|
<id> is a 24-character hexadecimal string. |
|
{
"$ref": "<name>",
"$id": "<id>"
}
|
{
"$ref" : "<name>",
"$id" : "<id>"
}
|
DBRef("<name>", "<id>")
|
<name> is a string of valid JSON characters. <id> is any valid extended JSON type. |
|
{
"$undefined": true
}
|
undefined
|
undefined
|
The representation for the JavaScript/BSON undefined type. |
|
{
"$minKey": 1
}
|
{
"$minKey": 1
}
|
MinKey
|
The representation of the MinKey BSON data type that compares lower than all other types. See What is the compare order for BSON types? for more information on comparison order for BSON types. |
|
{
"$maxKey": 1
}
|
{
"$maxKey": 1
}
|
MaxKey
|
The representation of the MaxKey BSON data type that compares higher than all other types. See What is the compare order for BSON types? for more information on comparison order for BSON types. |