使用mongodb中大量文档引用的集合会导致性能下降吗?

时间:2015-09-16 04:03:09

标签: performance mongodb mongoose

我想设计一个存储文章的文章架构,并且可以记录为其加星标的用户。

这是架构:

var AtricleSchema = new Schema({
    name: {
        type: String,
        required: 'please enter the article name',
        trim: true,
        index: true
    },
    author: {
        type: Schema.ObjectId,
        ref: 'User'
    },

    //Other field...

    starredByUser: [{
        type: Schema.ObjectId,
        ref: 'User'
    }]
});

我不知道保存在文章集合中加载了文章ID的用户是否是一个好习惯。如果有这么多人出演这篇文章怎么办?例如:200,000个用户,文章doc会非常大。它会查询或写文档很慢吗?

例如这些查询:

Article.find({starredByUser:ObjectId('my-user-id')})

找到主题文章的前五位用户。

我的设计在这些条件下并不好,必须有更好的解决方案,任何建议或示例都会非常有用!

1 个答案:

答案 0 :(得分:0)

这看起来像许多引用/关系的问题。你为什么要使用MongoDB?如果你不能很好地“解决”你的文档问题,我认为MongoDB不是理想的选择。

此外,您的访问模式是什么,例如读取与写入,频繁查询,......?使用NoSQL数据库,这比使用关系数据库产生了更大的差异。