See syntax
See syntax
See syntax
See syntax
See syntax:
See syntax:
{ "$binary":
{
"base64": "<payload>",
"subType": "<t>"
}
}
See syntax:
See syntax:
{ "$date": { "$numberLong": "<millis>" } }
See syntax:
See syntax:
{ "$numberDecimal": "<number>" }
Converts to a JSON object
Converts to a JSON object
See syntax:
See syntax:
{ "$code": "<javascript>" }
See syntax:
See syntax:
{
"$code": "<javascript>",
"$scope": { }
}
See syntax:
See syntax:
{ "$maxKey": 1 }
See syntax:
See syntax:
{ "$minKey": 1 }
First checks whether an explicit type (e.g.
First checks whether an explicit type (e.g. $binary
) is specified,
otherwise converts to a BSON document.
See syntax:
See syntax:
{ "$oid": "<ObjectId bytes>" }
See syntax:
See syntax:
{ "$regularExpression":
{
"pattern": "<regexPattern>",
"options": "<options>"
}
}
See syntax:
See syntax:
{ "$symbol": "<name>" }
See syntax:
See syntax:
{ "$timestamp": {"t": <t>, "i": } }`
See syntax:
See syntax:
{ "$undefined": true }
See toValue
See toValue
If the number:
If the number:
- is not whole then it's converted to BSON double, - is a valid integer then it's converted to a BSON integer (int32), - otherwise it's converted to a BSON long integer (int64).
See compat$ and ValueConverters.
Note that as there is not a JSON equivalent for each BSON value (
BSONDateTime
, or even distinction between BSON long/int).So for example, using the default JSON handlers, a same
Long
property can be written in some documents as BSON long (NumberLong
), and in some other as BSON integer (see ValueConverters.toNumber), which is ok to read all these documents, but can impact the MongoDB queries (same for date/time values that will be serialized as BSON string, rather than BSON date/time or timestamp).