3rd standard?
"the third standard within enterprises for databases"
I would have thought that the main 3 standards for DBs are Oracle, MSSQL and Postgres. What do you have as your top 2 standards?
Increasingly the third standard within enterprises for databases, MongoDB, has been claiming a lot of victories lately. In relative terms, it has become the second-hottest skill to have on one's resume, right after HTML5, according to Indeed.com job trend data. And despite plenty of hating on its technology, with one person …
I would have said:
DB/2
Oracle
SQL Server
MySQL
Sybase
I have never heard of MongoDB being deployed in anger and while I'm not actually in databases I am in storage, so most of my time is spent designing backup and disk for these systems.
It's also another FOSS project which is going to be held back by its name. I'm not sure about the US, but in the UK "Mong" is a pretty nasty, basically racist insult.
"What are "operational" and "analytical" databases?"
These are terms used by management. They think in terms of strategic and business goals and often ignore technical considerations. This is not wrong just acting on incomplete information.
The problems occur when management no longer trust technical information sources.
Operational databases are the ones where you loose money if a single record is missing or incorrect, analytical databases are the ones where the amount of errors only has to be low enough to be statistically insignificant. Storing your invoices in mongodb is a very, very dumb idea. Using a full blown Oracle installation when you want to know how popular a topic is on twitter is equally stupid.
Tool, job etc...
Indeed, very informative. People wanting simple and fast key/value storage for part of an application should look Postgres' H-store data-type.
Another large-scale, write-heavy Postgres-based application:
http://www.egenix.com/library/presentations/EuroPython2009-Making-50Mio-EUR-per-year-using-Python/
Still in operation and significantly scaled-up.
Coming from a traditional relational database environment and trying to apply your experience to noSQL is not going to work. You need to throw away much of what you know and hold dear and understand some completely new concepts.
The whole transactional isolation vs scalability debate can't be answered for every deployment scenario, however MongoDB provides a welcome middle-ground between isolation-free technologies like Cassandra and tightly controlled transaction isolation like Postgres. No doubt thanks to sponsors like FourSquare, Mongo has some solutions to very modern problems, such as geospatial indexing.
"it sets database technology back 25 years"
Look, sometimes you don't NEED a big database. With my current project at work, we're working on things that don't always have all the data/information available, don't always have all cases similar (and this is modelling the real world, not a business process", and needs to be lightweight. Mongo fits; the data is so non-orthogonal that forcing it into a "real" database would force us to write around the database far more than writing features, enhancements, etc. The code would rot a LOT more quickly with a real DB.
That being said, I've worked at places where you NEED that (911 system, military, drug allergy databases, etc). remember, it's about the right tool for the right job.
Intriguing, for nearly almost every negative post relating to MongoDB, there is a downvote for no reason.
Is it possible that the MongoDB fanboi massive has taken offence to the general consensus of opinion on this article?
Or, more realistically, are the Lizard People trying to engineer the situation into making us think that MongoDB is the way forward? This seems more likely, given the article in question...
I wonder what the collective noun for a group of MongoDB fanbois is exactly?
These days, it's a dealbreaker for me: other DBs like Oracle and PostgreSQL+Postgis can do it. Turns out MongoDB can... up to a limited point:
http://gis.stackexchange.com/questions/8991/how-to-store-lines-and-polygons-in-json-documents
"MongoDB doesn't currently support indexing on anything other than points, and its spatial functions are limited to finding within bounds. "
I think that's something that the MongoDB team should really investigate: support lines and polygons like other systems, and have R-tree indexes inside for quicker searches than B-tree indexes.