Un par de cosas:
* Es un puente realmente agradable entre SQL y NoSQL. Mongo, especialmente cuando usa un ORM, tiene muchas características que son similares a las bases de datos relacionales, por lo que es una manera fácil de mojarse los pies con los almacenes de documentos.
* Se asigna muy bien a la mayoría de los lenguajes dinámicos. Dado que comprende matrices y hashes de forma nativa, casi se siente como una base de datos de objetos cuando se usa con Ruby.
* MapReduce tiene una buena interfaz. Su implementación de JavaScript es mucho más limpia que otras tiendas NoSQL.
* Está volviendo loco rápidamente.
* Las operaciones atómicas le permiten hacer algunas cosas que necesitarían una transacción en una base de datos relacional.
* Las consultas geoespaciales están integradas. No dependas más de terceros para estas cosas, a menos que tengas necesidades realmente específicas o necesites ser extremadamente preciso.
Dicho esto, hay cosas sobre Mongo que son agradables, pero que tienen más que ver con el contraste entre bases de datos relacionales y almacenes de documentos que con Mongo en sí:
- ¿Qué marco de desarrollo de aplicaciones web prefiere para Node.js?
- ¿Cuánto tiempo me llevará desarrollar una aplicación de blog, usando Spring y Angular?
- ¿Cuáles son algunas buenas alternativas de RescueTime?
- ¿Qué software de programación de reuniones debo elegir?
- Estamos buscando lanzar una aplicación en Salesforce AppExchange. ¿Alguna idea sobre los precios y cómo aparecer como una aplicación destacada?
* El modelado de documentos se ajusta muy bien a ciertos casos de uso. Todavía estoy explorando algunos en particular, pero tener comentarios incrustados en algún tipo de modelo de dominio es espectacular.
* El modelado de documentos puede reducir drásticamente sus consultas por página. Tengo una aplicación que solo necesita dos consultas en la mayoría de las páginas, debido a la ‘desnormalización’.
* Debido a la naturaleza sin esquema de los almacenes de documentos, es mucho más rápido comenzar a trabajar y cambiar la forma en que almacena sus datos.
También hay algunos inconvenientes:
* Ni siquiera te molestes en usar 32 bits. Tiene un límite de tamaño de base de datos 2G allí.
* Es rápido porque, de forma predeterminada, solo imprime en el disco una vez por segundo, por lo que teóricamente podría perder datos.
* También es rápido porque con ciertas configuraciones en realidad regresa antes de saber si la escritura falla o no, esto puede o no ser lo que desea.
En pocas palabras: conozca sus herramientas. usa el mejor.