mongodb使用$ lookup加入整个集合

时间:2018-12-30 00:46:28

标签: mongodb left-join lookup

我正在努力使用$lookup在mongodb中进行联接。我希望每次调用game集合时都发生这种连接。

我有两个收藏集:gameboxart

game集合

{ "guid": 123, name: "Halo" }

boxart集合

{ "releaseId": 123, image: "https://someurl.com/image.jpg" }

index.js

MongoClient.connect(dbConfig.url, { useNewUrlParser: true }, (err, database) => {

  db = database.db("cello_db");
  db.collection('game')
    .aggregate([
      { $lookup:
        {
          from: 'boxart',
          localField: 'releaseId',
          foreignField: 'guid',
          as: 'art'
        }
      },
    ]);

  require('./routes')(app, db);

});

routes.js

module.exports = function(app, db) {
  app.get('/games', (req, res) => {
    db.collection('game').find().toArray((err, games) => {
      res.send(games);
    });
  });
};

但是,当我呼叫我的/games端点时,没有得到加入的集合。我期望得到的是:

{ "guid": 123, name: "Halo", art: { "releaseId": 123, image: "https://someurl.com/image.jpg" } }

我实际上得到的是:

{ "guid": 123, name: "Halo" }

我显然做错了什么。我是后端新手,仅使用了Mongodb几个小时。任何帮助,将不胜感激。预先感谢!

0 个答案:

没有答案