Alguns pontos gerais no MongoDB
Prós:
- sem esquema. Se você tiver um esquema flexível, isso é ideal para um armazenamento de documentos como o MongoDB. Isso é difícil de implementar de maneira eficiente em RDBMS
- facilidade de expansão. Escalar leituras usando conjuntos de réplicas. Escalar gravações usando fragmentação (balanceamento automático). Basta ligar outra máquina e pronto. Adicionar mais máquinas =adicionar mais RAM para distribuir seu conjunto de trabalho.
- custo. Depende de qual RDBMS é claro, mas o MongoDB é gratuito e pode rodar no Linux, ideal para rodar em um kit mais barato.
- você pode escolher o nível de consistência que deseja dependendo do valor dos dados (por exemplo, desempenho mais rápido =disparar e esquecer inserções no MongoDB, desempenho mais lento =esperar até que a inserção seja replicada para vários nós antes de retornar)
Contras:
- O tamanho dos dados no MongoDB geralmente é maior devido a, por exemplo, cada documento tem nomes de campo armazenados nele
- menos flexibilidade com consultas (por exemplo, sem JOINs)
- sem suporte para transações - certas operações atômicas são suportadas, em um único nível de documento
- no momento Map/Reduce (por exemplo, para fazer agregações/análise de dados) está OK, mas não incrivelmente rápido. Então, se isso for necessário, algo como o Hadoop pode precisar ser adicionado à mistura
- informações menos atualizadas disponíveis/produto em rápida evolução
Recentemente, bloguei meus pensamentos no MongoDB como alguém vindo do SQL Server, então você pode estar interessado nisso (acima são apenas alguns dos pontos principais).
Se você está procurando uma resposta "O MongoDB é melhor que o RDBMS" - então IMHO não há resposta. Tecnologias NoSQL como MongoDB fornecem uma alternativa que complementa as tecnologias RDBMS. Um pode ser mais adequado para uma finalidade específica do que o outro, portanto, trata-se de fazer uma chamada sobre o que é melhor para você para um determinado requisito.