Sono abbastanza nuovo nello storage basato su documenti MongoDB e il mio background è in database tabulari e ho difficoltà a capire il modo giusto per modellare questa relazione.
Attualmente ho una raccolta chiamata utenti, vorrei aggiungere una struttura per i post, che sono di proprietà degli utenti, e su questi post gli utenti possono lasciare commenti nidificati. Basandomi sulla documentazione che ho letto, credo che finirebbe per assomigliare a qualcosa del genere:
users: [
{
userId: 1,
username: 'baconater',
posts:[
postId: 1,
body: 'some user created content',
comments: [
{
commentId: 1,
comment: 'a comment',
userId: 2, //I don't know how to properly relate this back to a user
comments: [ //replies to comments go here? can I arbitrarily nest them??
... similar structure to the parent comment object
]
},
{
userId: 2,
username: 'pwnyoursocks',
posts:[
postId: 2,
body: 'some moew user created content',
comments: [
{
commentId: 1,
comment: 'a comment',
userId: 1,
comments: []
}
]
]
}
]
Questa struttura è incentrata sull'utente, il che è un bene per la gestione degli utenti, ma come farei qualcosa di non incentrato sull'utente come aggregare i post per punti? Inoltre, qual è il modo corretto per correlare gli oggetti agli utenti, ad esempio nei commenti che, mentre sono nidificati in un utente specifico, fanno riferimento all'utente che ha creato il commento che è probabilmente diverso dall'utente genitore?