In SQL termnsterms, a NoSQL database is a single table with two columns: one being the (Primary) Key, and the sencondthother being the Value. And that's it, that's all the NoSQL magic.
You would use NoSQL for one main reason: scalability.
If your application needs to handle millonsmillions of querysqueries per second then, the only way to achieve it is to add more servers, and with NoSQL that's. That is very cheap and easy with NoSQL. In contrast, scaling a traditional SQL database is much more complicated.
Only the biggest websites out there are actually taking advantage of the full NoSQL potential, iei.e., Facebook, having thousands of servers running Cassandra.
I strongly recommend to read this blog post, comparing SQL, NoSQL and ORM: