我正在努力使用$lookup
在mongodb中进行联接。我希望每次调用game
集合时都发生这种连接。
我有两个收藏集:game
和boxart
。
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几个小时。任何帮助,将不胜感激。预先感谢!