5
ihsanm
8y

After a year of using mongo in prod and personal projects I have realised some things. Its really nice early on the project, especially when there are changing requirements and for small projects or proof of concepts.
But when you make commercial software things tend to get more complex and relational. Stakeholders want reporting and even a report building which a document store isn't the best at.
With most projects projects when they get big things get relational and this becomes more and more expensive to handle in terms of compute power and developer time.
I don't doubt mongo has its place, maybe as an secondary specialised data store or if the project is inherently document oriented.
Blog over.

Comments
  • 0
    I still think MongoDB is for coding hipsters 😂

    Oh and welcome to devRant!
  • 1
    @qbasic16 Making a nice schema requires finesse and planning. It's rewarding when you come up with the perfect structure, don't have to manipulate data and have no need for joins. Let's say you are modelling a tree, document db is way better than relational solution.
    SQL is ready made, just go through 3 stages of normalisation and you've got a solution. But fucking hell shit like postgress making progress with key value storage speeds. And the possibility of a redis layer coupled with postgress is a robust solution.
  • 0
    thx for the insight. I will have to look into it at some point. 😉
  • 0
    @reticentroot what do you mean by structs
    ?
  • 0
    @reticentroot ahh yeah I thought so. Yeah absolutely your models should pertain to 1 owner/entity or "class", but even then, even with best denormalisation efforts your still gonna need joins. That's the sticking point.

    And some lib that has built in validation is sweet for them error messages and data integrity. I personally use mongoose with node.
  • 0
    @reticentroot how's your experience with lookups and their limitations you've run into if any? I've used them a lil bit and feel semi comfortable with them.
  • 0
    @reticentroot on the matter of reporting. Have you made report builders? I'm theorising some system with lookups could be possible. Have you delved into this realm?
Add Comment