3

在 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

4

2 回答 2

6

从官方手册中,我想您会在这里找到比所有答案更多的答案(:

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

EDIT: You can also use the "populate" function from mongoose: http://mongoosejs.com/docs/populate.html

good luck

于 2013-04-24T13:39:32.370 回答
2

您可能会查看以下链接:

http://groups.google.com/group/mongodb-user/browse_thread/thread/3f35c3fb28891b52

http://blog.fiesta.cc/post/11319522700/walkthrough-mongodb-data-modeling

另外,您确定不支持递归模式吗?您可以查看此链接:

Mongoose:Coffeescript 中的递归嵌入文档

于 2012-07-03T05:44:36.783 回答