BSON supports the following data types as values in documents. Each data type has a corresponding number (an integer ID number from 1 to 255) that can be used with the $type operator to query documents by BSON type.
|Double||Represents a float value.||1|
|String||BSON strings are UTF-8. In general, drivers for each programming language convert from the language’s string format to UTF-8 when serializing and deserializing BSON. This makes it possible to store most international characters in BSON strings with ease.  In addition, MongoDB $regex queries support UTF-8 in the regex string.||2|
|Object||Represents an embedded documents.||3|
|Array||Sets or lists of values can be represented as arrays:||4|
|Binary data||Binary data is a string of arbitrary bytes, it cannot be manipulated from the shell.||5|
|Object id||ObjectIds (MongoDB document identifier, equivalent to a Primary key) are: small, likely unique, fast to generate, and ordered. These values consists of 12-bytes, where the first four bytes are a timestamp that reflect the ObjectId’s creation.||7|
|Boolean||A logical true or false. Use to evaluate whether a condition is true or false||8|
|Date||BSON Date is a 64-bit integer that represents the number of milliseconds since the Unix epoch (Jan 1, 1970). This results in a representable date range of about 290 million years into the past and future.||9|
|Null||It represents both a null value and a nonexistent field.||10|
|Symbol||Not supported by the shell. If the shell gets a symbol from the database, it will convert it into a string.||14|
|32-bit integer||Numbers without decimal points will be saved as 32-bit integers.||16|
|Timestamp||BSON has a special timestamp type for internal MongoDB use and is not associated with the regular Date type. Timestamp values are a 64 bit value where :
-- the first 32 bits are a time_t value (seconds since the Unix epoch).
-- the second 32 bits are an incrementing ordinal for operations within a given second.
|64-bit integer||Numbers without a decimal point will be saved and returned as 64-bit integers.||18|
|Min key||MinKey compare less than all other possible BSON element values, respectively, and exist primarily for internal use.||255|
|Max key||MaxKey compare greater than all other possible BSON element values, respectively, and exist primarily for internal use.||127|
When comparing values of different BSON types, MongoDB uses the following comparison order, from lowest to highest:
|1||MinKey (internal type)|
|3||Numbers (ints, longs, doubles)|
|12||MaxKey (internal type)|