Why I Like Neo4j | /var/blog
Earlier this week, I gave a presentation comparing various SQL/NoSQL databases. I provided an overview of five different databases described their particular use cases, but I noticed myself talking about one much more than the rest: Neo4j. Part of this is because Neo4j is one of the least-known database from a list that includes PostgreSQL, Redis, MongoDB, and CouchDB. But part of it is because it takes a really fascinating approach to data. While I've used MongoDB in the past for a number of applications, I've really enjoyed using Neo4j for a couple of recent projects - and I think I finally understand why: MongoDB prefers to internalize data attributes, whereas Neo4j seeks to externalize them. (Incidentally, Neo4j's approach is loosely analogous to the way objects are handled in Lisp). Alternatively, MongoDB is about data properties, whereas Neo4j is about data relationships. In MongoDB, the idiomatic way to represent data is as an object, which contains properties.