DEV Community

Discussion on: Should I go NoSQL or SQL for my specific app case? Or both?

Collapse
 
theoutlander profile image
Nick Karnik • Edited

NoSQL databases like Mongo support relations via Mongoose, so that is one of my picks. However, I would strongly recommend looking into ElasticSearch because it has recommendation engine add-ons as well. Normally, I would suggest Neo4J, but it is a bit more complex to work with compared to ElasticSearch, but you can check that out too.

The long answer is that I would focus on the use-case first and look at how complex the joins need to be. Can that data be stored successfully in a single document or split into multiple documents where a single join would allow me to retrieve data? How are you planning on querying it? Is it real-time queries mostly? Or, offline queries for data processing? Those things will make it clear which way you should go. How much data will you be storing? Mongo and ElasticSearch scale better and are easier to work with.

I've worked with a variety of SQL databases for over 20 years - SQL Server, MySQL, Access, Postgres, and Oracle. I have used a few NoSQL databases too, but have stuck to Mongo as a Document DB. I also love ElasticSearch for search-based applications and Neo4J for graph-based applications. I rarely go back to using SQL databases, because they are a pain in the ass to deal with on fast-paced projects and slow you down.

Check this talk by Martin Fowler on NoSQL - youtube.com/watch?v=qI_g07C_Q5I