mongodb Присоединиться ко всей коллекции, используя $ lookup - PullRequest
0 голосов
/ 30 декабря 2018

Я пытаюсь сделать соединение в mongodb, используя $lookup.Я хочу, чтобы это объединение происходило всякий раз, когда вызывается коллекция game.

У меня есть две коллекции: game и boxart.

game collection

{ "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);

});

rout.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 всего пару часов.Любая помощь будет оценена.Заранее спасибо!

...