Javascript Mongoose:在属性中引用架构还是作为数组添加?哪个更好

Javascript Mongoose:在属性中引用架构还是作为数组添加?哪个更好,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,例如,如果我有两个模式User和Post,我应该在Post的属性中添加用户引用,还是在用户模式中添加Post模式作为数组?哪一个性能更好(以及其他方面) 或 我认为这种方式比其他方式更好。您应该在PostSchema中有对用户的引用 这是更好的方法,因为一个用户可以有多篇文章,如果您将文章保存在UserSchema中作为一个数组,那么该数组可以无限增长。这可能会导致问题,因为mongodb文档的最大大小有限制。单个mongodb文档不能大于16Mb 从性能角度来看,在用户模式中保存帖子更好,但考

例如,如果我有两个模式UserPost,我应该在Post的属性中添加用户引用,还是在用户模式中添加Post模式作为数组?哪一个性能更好(以及其他方面)


我认为这种方式比其他方式更好。

您应该在
PostSchema
中有对用户的引用

这是更好的方法,因为一个用户可以有多篇文章,如果您将文章保存在
UserSchema
中作为一个数组,那么该数组可以无限增长。这可能会导致问题,因为mongodb文档的最大大小有限制。单个mongodb文档不能大于16Mb


从性能角度来看,在用户模式中保存帖子更好,但考虑到mongodb文档大小的限制以及用户可以有许多帖子的事实,引用其父文档(用户)的子文档(帖子)是更好的方法。

有什么具体原因吗?
 var PostSchema = new mongoose.Schema({
    title: String,
    postedBy: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User'
    },
});
var UserSchema = new mongoose.Schema({
    name: String,
    posts: [PostSchema]
});
var PostSchema = new mongoose.Schema({
    title: String,
    postedBy: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User'
    },
});