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