如何使用MongoDB和Mongoose为Node.js存储线程注释?

时间:2012-07-03 05:01:19

标签: node.js mongodb comments mongoose

在MongoDB和Mongoose中存储注释树的最佳方法是什么?目前我有这个:

CommentableSchema = new Schema({
    ...
});

ReplySchema = new Schema({
    userId: Number,
    'body': String,
    createdAt: Date,
    updatedAt: Date
});

CommentSchema = new Schema({
    commentable: CommentableSchema,
    userId: Number, // users are NOT stored in MongoDB
    subject: String,
    'body': String,
    createdAt: Date,
    updatedAt: Date,
    replies: [ReplySchema],
    length: Number // comment + all replies
});

但这似乎只适用于顶级评论+ 1级评论。我相当确定我无法在ReplySchema内使用ReplySchema

2 个答案:

答案 0 :(得分:5)

从官方手册中,我猜你会在这里找到更多答案(:

http://docs.mongodb.org/manual/tutorial/model-tree-structures/

编辑:你也可以使用mongoose的“填充”功能:http://mongoosejs.com/docs/populate.html

祝你好运

答案 1 :(得分:2)