Diverse soluzioni NoSQL risolvono problemi diversi per usi diversi, quindi prima di tutto la cosa migliore da fare è guardare il tuo problema e analizzarlo
- Stai scrivendo pesantemente per l'archiviazione, quindi la velocità di scrittura è importante per te
- Vuoi eseguire operazioni di aggregazione su quei dati e avere i risultati facilmente interrogabili
- La velocità di lettura non è così importante dal suono delle cose, almeno non in un modo in cui "l'applicazione web deve essere davvero reattiva per milioni di persone"
- Non so se hai bisogno di query dinamiche o meno
Diamo un'occhiata a Couch, Mongo e Raven in modo generalizzato e di altissimo livello
Corvo
- Scrive veloci
- Query veloci (eventualmente coerenti, precalcolate, aggregazione tramite mappa/riduzione)
- Query dinamiche possibili, ma non proprio appropriate al tuo caso d'uso, poiché molto probabilmente eseguirai query per data ecc.
Mongo
- Scrive alla cieca (a mio parere pericolosamente, perché spegnersi significa perdere dati;-))
- Letture lente (relativamente), aggregazione tramite mappa/riduzione, non precalcolata
- Le query dinamiche sono proprio quello che fai, ma probabilmente devi definire gli indici sulle tue colonne se vuoi ottenere qualsiasi tipo di prestazione su questo tipo di dati
Divano
- Scrive veloci
- Letture veloci (precalcolate, ma aggiornate solo quando leggi (IIRC)
- Le query dinamiche non sono possibili, tutte predefinite tramite mappa o funzioni mappa/riduci
Quindi, in pratica, hai bisogno di query dinamiche su questo tipo di dati? La velocità di lettura è incredibilmente importante per te? Se hai bisogno di query dinamiche, allora vorrai Raven o Mongo (per questo genere di cose Couch probabilmente non è quello che stai cercando comunque).
FWIW, l'unico caso d'uso di Mongo secondo me è per la registrazione, quindi potresti avere una risposta lì.