However, not everything is consistently rosy when using Node.JS and MongoDB together. There are caveats to be aware of. As with any database, your experience using MongoDB is likely only going to be as good as your chosen driver. No matter how wonderful your database is, if you are using a subpar bug-ridden driver with it, your adventures with it will not be pleasant.
Based on our experience with customers who have high-volume applications running on MongoDB, we recommend you to use either Mongoose or MongoSkin as your MongoDB driver.
Mongoose is the heavyweight ORM for Node.js. It supports schemas, validation, application-side joins (population), plugins and many other features. For a larger application, you probably will want validation. Mongoose already provides this and so it saves you writing your own.
On the other hand, if you only want to run a few simple queries, or you are allergic to ORMs, Mongoose may be overkill for your needs.
MongoSkin is a lightweight MongoDB driver for Node.JS. It is somewhat similar to Python's pymongo driver in scope. It doesn't provide ORM features itself, but enables you to chain queries without too many callbacks. Far nicer than using the very low level node-mongodb-native driver.
MongoDB can support complicated data models with excellent performance, but you definitely want to think out your schema and application requirements in advance.
In particular, pay attention to size/growth:
While MongoDB is easy to get up and running on your local machine, when it comes to managing a production server (with replica sets, backups, etc) you really need to know what you're doing.
For this reason, we recommend you outsource MongoDB hosting to a provider like MongoLab (disclaimer: we're MongoLab partners and use them for our own stuff), MongoHQ or ObjectRocket rather than doing it yourself. Certainly at least until you have enough traffic to justiy investing in your own infrastructure.