Depende de como é o relacionamento que você fez no MongoDB.
Pois se for relacionamento como um banco de dados relacional
não é muito legal usar o Mongo.
Você pode fazer de algumas formas que eu lembro.
Subdocumentos, ou seja, cada comentário é um subdocumento do
artigo.
Depois é só chamar o artigo e com
const childSchema = new Schema({ name: 'string' });
const Child = mongoose.model('Child', childSchema);
const parentSchema = new Schema({
child: {
type: mongoose.ObjectId,
ref: 'Child'
}
});
const Parent = mongoose.model('Parent', parentSchema);
const doc = await Parent.findOne().populate('child');
Um subdocumento pode ter um subdocumento.
https://mongoosejs.com/docs/subdocs.html
O outro jeito é fazer um relacionamento muito parecido com
um banco relacional(tabelas separadas) e usar o aggregate com $lookup para relacionar!
Também funciona com populate
Ou pode fazer no código com recursão.
Busca o artigo acha os comentários, entra em cada um deles e verifica seus filhos e assim vai!
Criando um grade Array ou Objeto.
Ou ainda, guardando tudo no mesmo documento.
Cada documento aguenta 16 mega(o que é muita coisa par texto)
Nesse post abaixo tem algumas
https://stackoverflow.com/questions/60792830/how-to-aggregate-nested-comments-using-mongodb