But MongoDB itself needs you to understand your data patterns before you start adding shards, so the technology itself depends on you actually sitting down and designing an architecture while understanding that. Most people pick up mongo because it’s painted as being “beginner developer friendly”, I don’t mean new developers, I mean picking it up and running with it, without understanding it, was made to be incredibly easy. Their only fault is overzealous marketing, it has (in my opinion) very clear pain points that should be avoided, but those painpoints are antithical to why many people used it in the first place. MongoDB itself is not /really/ a valid choice in many scenarios that it was painted as solving. Although I don’t believe it really matters - it will to those who assume I don’t understand best practice. Since everyone is sharing their opinion and experience with mongodb I think I’ll share mine.Īs an appeal to authority I would like to mention that I have relevant vocational qualifications on the subject (more geared towards scalability and operations). If you can’t get past those, choose another tool. It’s always the same superficial complaints from ten years ago. There are a LOT of legitimate gripes, but no article I’ve read mentions them. I don’t feel confident letting most of my peers use it. I feel confident using Mongo for any task. Substituting Mongo as-is will make everything worse, and they’ll triumphantly proclaim how terrible NoSQL is and then write an article. That individual is incapable of using something more complicated. They’ve managed to generate about 100 queries, in one case, where a single query is all that’s needed. I’m on a project right now, where a developer has selected an ORM for PostgreSQL that forgoes joins. The “no” in NoSQL doesn’t seem to stop people from modeling join relationships in Redis, or chaining distributed queries with fully consistent writes on Cassandra. If you can’t adjust to the limitations and paradigm shift, you get no benefits. They’re the same reasons I’ve seen people fail at using Cassandra, Redis, or Spanner. It was a dream to administer and a vital piece of a multimillion dollar franchise.Įverybody else I know, however, has had nothing but headaches. It operated without a single issue for years under high load. I went to production with Mongo and it exceeded my expectations. Aggregation - basic BI could be done from day one, which business can get value sooner. Indexed arrays, attributes (name, value pair) - Allows to be more creative (add tagging system to any type of data you have)ģ. Schemaless - Logic is in the app Gives visibility Can be tested Less migration headaches Easier to evolve your architecture.Ģ. Features that allowed us to leverage what we have instead of researching new tools were:ġ. When specific features/parts require new solutions, new solutions can be used (financial transactions, etc). It allows teams to shape and evolve the product as needed. My personal view is that MongoDB's main advantage is its flexibility. With Mongo pretty much any experience dev could do that. Mongo? In one of my previous jobs we had to hire a consultant to do that. How much effort and money a company needs to keep a replicated Postres cluster vs. Just because it has json storage doesn't make it a replacement. On the other note, I keep seeing people recommending Postgres, but to me that is apples vs. That said, it's not something that an experienced developer should be using for anything nowadays, and the solution might be to ensure that competing alternatives (like Postgres) can learn from why MongoDB became popular and seek to solve some of the pain points in their own implementations.Ĭould you elaborate please on the untold pain part? We use Mongo as our primary storage at the moment and I would like to avoid painful issues. This caused untold pain later on, but the trade-off is that it likely allowed the company to exist at all – the founder being more of a domain expert than a technical expert, but being able to use it to scale their idea pretty quickly without having to pay much attention to all that tedious "reliability" and "safety" nonsense :) I have worked with at least one company that had been built using MongoDB as a primary data store from day one. But it had some other "advantages" over other, better solutions – in that it was easier to set up, didn't require schema definition, had a passable clustering story etc. I would argue that MongoDB is not-and has never been-the best choice for solving any particular technical problem.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |