我如何处理MongoDB中的大数组?

时间:2016-07-30 04:04:39

标签: mongodb

我有一个用户文档,它有一个名为activityLog的数组字段。用户采取的每个操作都需要在此处记录。 但是,我知道MongoDB的文档大小为16MB。 如果此阵列需要能够容纳数百万个项目,那么这不会超过文档大小限制吗?我该怎么处理?

请大致回答这个问题,即一些通用数组需要保留数百万个项目

1 个答案:

答案 0 :(得分:0)

从您描述的用例中,看起来活动日志属于单独的集合。正如您已经提到的,您无法将日志嵌入到用户中,因为数据量增长很多,并且可能超过16 MB的文档大小,因此使用引用是可行的方法。接下来,您必须决定是从用户引用日志还是从日志引用到用户(父引用)。在用户中有一组对日志的引用不如父引用好,因为它仍然可以超出文档大小限制,每次检索用户时也几乎不需要所有用户历史记录。