Diferentes soluções NoSQL resolvem diferentes problemas para diferentes usos - então, primeiro, a melhor coisa a fazer é analisar seu problema e decompô-lo
- Você está escrevendo muito para armazenamento, portanto, a velocidade de gravação é importante para você
- Você deseja realizar operações de agregação nesses dados e ter os resultados facilmente consultáveis
- A velocidade de leitura não é tão importante pelo som das coisas, pelo menos não em um tipo de "aplicativo da Web precisa ser realmente responsivo para milhões de pessoas"
- Não sei se você precisa de consultas dinâmicas ou não
Vamos olhar para Couch, Mongo e Raven em um nível muito alto e generalizado
Corvo
- Gravações rápidas
- Consultas rápidas (eventualmente consistentes, pré-computadas, agregação via map/reduce)
- Consultas dinâmicas são possíveis, mas não são realmente adequadas ao seu caso de uso, pois você provavelmente fará consultas por data etc.
Mongo
- Escritas incrivelmente rápidas (na minha opinião perigosamente, porque desligar significa perder dados;-))
- Leituras lentas (relativamente), agregação via map/reduce, não pré-calculada
- Consultas dinâmicas são apenas o que você faz, mas você provavelmente precisa definir índices em suas colunas se quiser algum tipo de desempenho nesse tipo de dados
Sofá
- Gravações rápidas
- Leituras rápidas (pré-computadas, mas atualizadas apenas quando você lê (IIRC)
- Não é possível fazer consultas dinâmicas, todas pré-definidas por meio de funções map ou map/reduce
Então, basicamente - você precisa de consultas dinâmicas sobre esse tipo de dados? A velocidade de leitura é incrivelmente importante para você? Se você precisar de consultas dinâmicas, precisará do Raven ou do Mongo (para esse tipo de coisa, o Couch provavelmente não é o que você está procurando de qualquer maneira).
FWIW, o único caso de uso do Mongo na minha opinião é para log, então você pode ter uma resposta lá.