如何在MongoDB中处理大型阵列?

如何在MongoDB中处理大型阵列?,mongodb,Mongodb,我有一个用户文档,它有一个名为activityLog的数组字段。用户采取的每一个行动都需要记录在这里。 但是,我知道MongoDB将文档大小限制为16MB。 如果这个数组需要能够容纳数百万个潜在的项目,这是否会超过文档大小限制?我怎么办 请一般回答这个问题,即某些通用阵列需要容纳您描述的用例中可能存在的数百万项,看起来活动日志属于一个单独的集合。正如您已经提到的,您不能向用户嵌入日志,因为数据会大量增长,并且可能超过16MB的文档大小,因此使用引用是一种方法。接下来,您必须决定是从用户引用到日志

我有一个用户文档,它有一个名为activityLog的数组字段。用户采取的每一个行动都需要记录在这里。 但是,我知道MongoDB将文档大小限制为16MB。 如果这个数组需要能够容纳数百万个潜在的项目,这是否会超过文档大小限制?我怎么办


请一般回答这个问题,即某些通用阵列需要容纳您描述的用例中可能存在的数百万项,看起来活动日志属于一个单独的集合。正如您已经提到的,您不能向用户嵌入日志,因为数据会大量增长,并且可能超过16MB的文档大小,因此使用引用是一种方法。接下来,您必须决定是从用户引用到日志,还是从日志引用到用户(父引用)。在用户中拥有对日志的引用数组不如父引用好,因为它仍然会超出文档大小限制,而且每次检索用户时几乎不需要所有用户历史记录。

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

如果此数组需要能够容纳可能数以百万计的项。。。为什么?您是否打算在过去两年内举办用户活动?这真的有意义吗?因为如果用户删除了他们的帐户,我们需要能够撤消他们的所有操作,比如他们喜欢的帖子,等等…如果这个数组需要能够容纳可能数以百万计的项目。。。为什么?您是否打算在过去两年内举办用户活动?这真的有意义吗?因为如果用户删除他们的帐户,我们需要能够撤消他们的所有操作,比如他们喜欢的帖子,等等。。。