MongoDB:当字段数组变得太大时,如何重新构造代码以进行扩展?

MongoDB:当字段数组变得太大时,如何重新构造代码以进行扩展?,mongodb,Mongodb,MongoDB 3.2 这句话很好地总结了我今天的生活: 我正在体验这篇引文所指的内容,因为我认为可能会出现类似于线程消息关系的一些问题,如下面的例子:>P/> { "_id" : ObjectId("2bjbkjb4234j134124"), //A ThreadID "messages" : [ { "_id": ObjectId("56a7b13f24236dea1247cdc7"), "authorNa

MongoDB 3.2

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

<强>我正在体验这篇引文所指的内容,因为我认为可能会出现类似于线程消息关系的一些问题,如下面的例子:>P/>

{ 
    "_id" : ObjectId("2bjbkjb4234j134124"), //A ThreadID
    "messages" : [
        {
            "_id": ObjectId("56a7b13f24236dea1247cdc7"),
            "authorName" : "Nick", 
            "timestamp" : 1.453699391078E12, 
            "message" : "Hello"
        },
        ... plus 50,000 more similar messages
    ]
},
...
我现在了解到,BSON文档限制可能会造成缩放破坏。

我最初假设,通过水平缩放,像“messages”这样的集合分解线程文档将是一种逻辑关系(对于以编程方式访问消息和保持文档相对较小)

当你考虑一个因素,比如时间(比如2年过去了),或者你可以想象的任何其他原因,总会有“消息”变得太大的可能性,然后突然间,我们就有了一个破碎的结构,水平的缩放(从我有限的角度来看)无法修复。

我的问题:

您将如何主动防御这种潜在的破损?您是否建议在每个文件中添加“threadID”之类的参考 消息或者我们可以在收集级别(如果这听起来很愚蠢,请抱歉)-创建动态名称(例如“messages.threadID1”)?