我有两个MongoDB数据库实例,数据库A和数据库B。数据库A包含集合X。数据库B包含集合Y。它们共享一个索引,并且可以假定具有一对一关系。
进行此设置的原因严格来说是业务决策,不能更改。
要响应API,最终需要将它们合并到一个包含新对象的数组中,该对象包含来自集合X和集合Y的信息。API允许针对每个集合中的数据元素进行过滤。如何查询两个集合?
到目前为止,我想出的最好的“解决方案”是从两个数据库中获取集合,然后在内存中使用以下Javascript(利用Lodash库)进行合并:
_.map(collectionX, (item) =>
_.extend(item, {
_metadata: _.find(collectionY, {sharedId: item.sharedId})
})
);
是否有更好,更有效的方式来进行这种查询?