MongoDB:在多个数据库上运行聚合

时间:2019-10-23 20:27:21

标签: mongodb aggregation-framework

我有许多数据库,每个数据库包含每个客户的数据。

有什么方法可以运行Aggregate并将其打入多个数据库?我想在完整的数据集上运行$group

作为一种解决方法,我将来自两个DBs的数据放入一个临时集合中,然后在此临时集合的顶部运行$group

有什么更好的方法吗?我也愿意使用其他任何技术!

1 个答案:

答案 0 :(得分:0)

无法使聚合管道同时在多个数据库上运行。 MongoDB聚合可能在集合之间执行$lookup以执行联接,但这是可以合并外部数据的程度。不幸的是,如果您继续使用现有架构,则手动合并数据(将原始数据合并到单个集合中以执行单个聚合或合并多个聚合的结果)是唯一可用的选择。

如果您修改数据库架构以将所有客户数据都包含在同一数据库中,并根据例如customerId字段,则可以同时对所有客户数据执行汇总,而无需进行任何额外的工作。但就目前情况而言,您现有的体系结构根本无法解决这个问题。