Node.js 如何使用mongoose和virtual populate为嵌套注释建模?

Node.js 如何使用mongoose和virtual populate为嵌套注释建模?,node.js,mongodb,mongoose,populate,Node.js,Mongodb,Mongoose,Populate,我参加了Jonas Schmedtmann的NodeJS课程,他在为两个集合之间的关系建模时解释说,如果这是一对多的关系,并且可能会无限增长,那么不应该使用子引用,而应该使用父引用。例如,我们有一个注释模式: const commentSchema=new mongoose.Schema({ 文本:字符串, 作者:{type:mongoose.schema.ObjectId,ref:'User'}, post:{type:mongoose.schema.ObjectId,ref:'post'}

我参加了Jonas Schmedtmann的NodeJS课程,他在为两个集合之间的关系建模时解释说,如果这是一对多的关系,并且可能会无限增长,那么不应该使用子引用,而应该使用父引用。例如,我们有一个注释模式:

const commentSchema=new mongoose.Schema({
文本:字符串,
作者:{type:mongoose.schema.ObjectId,ref:'User'},
post:{type:mongoose.schema.ObjectId,ref:'post'}
},{时间戳:true});
我们有一个post模式(使用父引用和填充):

const postSchema=newmongoose.Schema({
文本:字符串,
...
作者:{type:mongoose.schema.ObjectId,ref:'User'},
}, { 
时间戳:对,
toJSON:{virtuals:true},
toObject:{virtuals:true}
});
//使用虚拟填充
postSchema.virtual('注释'{
参考:“评论”,
foreignField:“post”,
localField:“\u id”
});
//然后我应该在控制器中填充它
它工作得很好,当我请求发布时,它会返回正确的响应以及与之相关的注释,但是当我想要实现嵌套注释或回复时,问题就出现了。我不知道如何做到这一点,但即使是回复也要保持它

我已经考虑过了,如果我在注释模式中添加一个额外的字段,将其称为
parent
,并将其引用到已回复的注释中,那么当我发出请求时,注释的响应处于同一级别,它不代表注释的嵌套性,因此我无法显示与父注释不同的回复(你知道我的意思)

所以实际上,我的问题是如何在保持注释为父引用的同时对注释进行嵌套响应