【发布时间】:2016-07-26 14:20:44
【问题描述】:
我似乎有一个相对简单的任务,即从两个集合中获取数据并将它们“合并”到一个集合中。
我已经成功地使用aggregation framework 和$lookup operator 完成各种其他任务。
我想我能想到的最接近的类比可能是full outer join,但$lookup 确实类似于left outer join。
例如,假设我有以下两个集合:
collection1:
{key: 1, val: '1'}
{key: 2, val: '2'}
collection2:
{key: 3, val: '3'}
{key: 4, val: '4'}
期望的最终效果是:
collection3:
{key: 1, val: '1'}
{key: 2, val: '2'}
{key: 3, val: '3'}
{key: 4, val: '4'}
我知道我可以完成这个“客户端”,但每个集合中可能有数百万条记录,出于效率原因,我试图通过尽可能少的数据移动来完成这项工作。
我的真正需求可能还涉及围绕匹配记录进行一些分组,例如可以通过$group operator 完成,但我认为这是一个正交问题,所以我暂时将其放在一边。
有没有比我更有经验的人,对这类事情有什么建议?
【问题讨论】:
-
你可以使用[$setUnion]docs.mongodb.com/manual/reference/operator/aggregation/setUnion
-
@Rahul 我认为
setUnion用于数组字段v 集合...?
标签: mongodb aggregation-framework