Preserving whitespace in MongoDB values In a simple scenario of me inserting a key-value pair, when value contains some white space, how can I preserve it?

Example:

&gt; &gt; db.bar.insert({"name":"mike    "})
&gt; &gt; db.bar.find() { "_id" : ObjectId("5080c03b8410d443d9acb7f5"), "name" : "mike " }
A bit of testing shows that the data is being inserted correctly, but the shell is trimming the field when it displays it.  You can test this as follows:

mongos&gt; db.test.insert({"name":"    adam    "})
mongos&gt; db.test.find({"name":"    adam    "})
{ "_id" : ObjectId("50814e5c2a17d922cd25974f"), "name" : " adam " }
mongos&gt; db.test.find({"name":" adam "})
mongos&gt;


That is, the data is found when you query with multiple spaces but not found when you re-use what the shell displays. So this is just a display issue with the shell, the DB is behaving as it should behind the scenes.  Also tested this with a driver and it behaved correctly.  

Even though this means that the data is the way you want, it is still technically a bug, because it could be confusing.  So I filed a bug here:

https://jira.mongodb.org/browse/SERVER-7424

Finally, to make this print out correctly, try this (assuming the same data I used in my test):

mongos&gt; var fix = db.test.find({"name":"    adam    "}).next()
mongos&gt; printjsononeline(fix)
{  "_id" : ObjectId("50814e5c2a17d922cd25974f"),  "name" : "    adam    " }