在nodejs中创建一个get api,基于Id加入两个集合,就像左连接一样

时间:2017-04-26 09:42:41

标签: node.js mongodb angular2-routing

我有两个集合我想要执行一种左连接但想要通过路由器API执行。我是节点js的新手。你能帮帮我吗。

1 个答案:

答案 0 :(得分:-1)

对我来说,你有三个解决方案:

1)使用Javascript自行编码并使用两个Api调用执行一项功能(完全不好)

2)你有lookup解决方案,详见另一个post(似乎是正确的解决方案)

编辑:

3)第三个解决方案也在same post中,它看起来像这样:(大多数人都在做,但是如同选项2一样优化),它不是你想要的解决方案,因为它没有合并两个集合一次,但你最终得到你想要的相同类型的数据

db.collection1.find().forEach(
    function (document) {
        document.collection2 = db.collection2.find( { "collection1": document._id  } ).toArray();
        document.collection3 = db.collection3.find( { "_id": { $in: document.collection3 }  } ).toArray();
    }
);