5 ms·
This is often what happens when Mongo is used, except now the task of joining and aggregating is pushed up to the application, instead of getting it for [mostly
by lastofus 10y ago
This is often what happens when Mongo is used, except now the task of joining and aggregating is pushed up to the application, instead of getting it for [mostly] free from the DB itself.
In the process of pushing it up to the app, you lose ACID guarantees. Without ACID guarantees, your ability to view/update a snapshot in time of all your data becomes a very difficult problem to solve. As such, it's hard to say the two methodologies are equivalent.
When you start putting relational data into a non-relational DB, you are going to have a bad time.
- eyelidlessness 10y agoIn addition to losing ACID guarantees, you lose single-query joins. They're performed in memory, sequentially, with all the incurred costs of a waterfall series of requests and whatever network communication is involved.
- eyelidlessness 10y ago(Much like the default behavior of some ORMs I work with...)
- toasterlovin 10y agoDatabase views have been incredibly useful for working around limitations of the ORM I work with on a daily basis.
- zihotki 10y agoTo add to that, MongoDB has a plenty of issues with consistency and documentation has some statements which are not proven and even disproven - https://aphyr.com/posts/322-jepsen-mongodb-stale-reads https://aphyr.com/posts/322-jepsen-mongodb-stale-reads