MongoDB:当字段数组太大时,如何重构代码以扩展?

时间:2016-01-28 20:00:08

标签: mongodb

MongoDB 3.2

这句话总结了我今天的生活:

"Inevitably, everyone who uses MongoDB has to choose between using multiple collections with id references or embedded documents"

我正在体验这句话所指的内容,因为我考虑了缩放类似线程的可能问题 - 消息关系如下例所示:

{ 
    "_id" : ObjectId("2bjbkjb4234j134124"), //A ThreadID
    "messages" : [
        {
            "_id": ObjectId("56a7b13f24236dea1247cdc7"),
            "authorName" : "Nick", 
            "timestamp" : 1.453699391078E12, 
            "message" : "Hello"
        },
        ... plus 50,000 more similar messages
    ]
},
...

我现在正在学习BSON文档限制可能会造成缩放破坏。

我最初假设使用横向缩放 - 像"消息"细分的线程文档将是一种逻辑关系(以编程方式访问消息并保持文档大小相对较小。)

但是,当你考虑像时间这样的因素(比如2年过去),或者你可以想象的任何其他原因时,总会有"消息"变得太大 - 然后突然间我们有一个破碎的结构,水平缩放(从我有限的角度来看)并没有解决。

我的问题:

你会如何主动防范这样的潜在破坏?你会推荐像" threadID"在每个人的内心 信息?或者我们可以在收集级别(抱歉,如果这听起来很愚蠢) - 创建动态名称(例如" messages.threadID1")?

0 个答案:

没有答案