Storing data using the correct types will make your life easier. Data type affects how data can be queried, the order in which MongoDB will sort it, and how many bytes of storage it takes up.
Any field you’ll be using as a number should be saved as a number. This means if you wish to increment the value or sort it in numeric order. However, what kind of number? Well, often it doesn’t matter—sometimes it does.
Sorting compares all numeric types equally: if you had a 32-bit integer, a 64-bit integer, and a double with values 2, 1, and 1.5, they would end up sorted in the correct order. However, certain operations demand certain types: bit operations (AND and OR) only work on integer fields (not doubles).
The database will automatically turn 32-bit integers into
64-bit integers if they are going to overflow (due to an
$inc, say), so you don’t have to worry
Similarly to numbers, exact dates should be saved using the
date type. However, dates such as birthdays are not exact; who knows
their birth time down to the millisecond? For dates such as these,
it often works just as well to use ISO-format dates: a string of the
This will sort birthdays correctly and match them more flexibly than
if you used dates, which force you to match birthdays to the
All strings in MongoDB must be UTF-8 encoded, so strings in other encodings must be either converted to UTF-8 or saved as binary ...