MongoDB becomes more popular among the developers because of its schemaless nature which give more flexibility. We can store any kind of data without having to worry about the structure of the data.
For few operations, I went through lot of searches to get the correct solutions. Some of them are
- Renaming a field name
- Change type of field value
- Finding document if the field exists
- Sucking MongoDB console
Lets assume that you have a MongoDB collection bookmarks
for Bookmarking application
{
'name' : 'DIVE INTO HTML5',
'url' : 'http://diveintohtml5.info/index.html',
'author': 'MARK PILGRIM',
'upvote': '2',
'created_at': "2013-07-02 00:00:00"
}
Renaming a field name
Let's say you want to rename a name
filed to title
, then
db.bookmarks.update({}, { $rename: {"name": "title"}}, { multi : true})
In above command, the option multi
is important. Otherwise it will update only one document.
Change type of field value
If you want to change type of upvote
field from string
to number
value, then
db.bookmarks.find().forEach(function (bookmark) {
bookmark.upvote = +(bookmark.upvote); // equivalent to parseInt
db.bookmarks.save(bookmark);
});
Finding the document if the field exists
Some scenarios, you might want to find the document which has a specific fields.
Lets say, get bookmarks which has tags
field.
db.bookmarks.find({ tags : { $exists : true } });
If the value of field is null
, then the field is considered as Not exist.
Sucking MongoDB console
MongoDB console sucks. I got frustrated whenever I work with MongoDB console. I desperately need JSON pretty for console output, and some more useful commands. Then I found the Mongo-hacker by TylerBrock(Thanks bro). It is awesome and you must give a try.
Let me know if anything you got useful. Have a nice day.