Recentemente sto esplorando database NoSQL. Ho bisogno di un consiglio su come conservare i dati nel modo più ottimale ed efficiente per un determinato problema. Sto prendendo di mira MongoDB, ora. Tuttavia dovrebbe essere lo stesso con CouchDB.Ho bisogno di un consiglio su NoSQL/MongoDb e struttura dati/modelli
Diciamo che abbiamo questi 3 modelli:
Story:
id
title
User:
id
name
Vote:
id
story_id
user_id
io voglio essere in grado di chiedere al database di queste domande:
- Chi ha votato questa storia?
- Che cosa ha votato questo utente?
Sto facendo semplici join mentre lavoro con un DB relazionale. La domanda è: come devo archiviare i dati per tali oggetti per essere più efficienti.
Ad esempio, se si memorizzano gli oggetti Voto come sottoraccolta di Storie, non sarà facile ottenere le informazioni - "Che utente ha votato per".
Beh, in effetti voglio memorizzare più informazioni in un modello di voto. Ad esempio: created_at, ip, user_agent. Devo memorizzare i dati nell'elenco di storie della collezione di utenti? –
Puoi memorizzare i voti come una serie di sotto-documenti, ognuno come '{story_id: ..., created_at: ..., ip: ...}', ecc. Quindi la query diventa 'find ({'stories .story_id ': ...}) '. Puoi indicizzare anche quello. – mdirolf
Beh, ho un database abbastanza grande con alcuni record M e proverò lo scenario sopra. –