小编joh*_*und的帖子

从 MongoDB 中的另一个集合添加值

我从一个外部 API 获取数据,它给了我两个集合。一种用于足球比赛,一种用于足球比赛。我将这些数据保存在 MongoDB 中。当我查询一场足球比赛时,我想知道参加比赛的每支球队。

这些是模型。

游戏

{
    ...,
    homeTeam: {
        id: 1234
    },
    awayTeam: {
        id: 2345
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)

竞赛

{
    ...
    standings: [
    {
        position: 1,
        team: {
            id: 1234,
            ...
        },
        ...
    },
    {
        position: 2,
        team: {
            id: 2345,
            ...
        },
        ...
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我试过将聚合与 $lookup 结合使用,但我无法让它以我想要的方式工作。

const game = await Game.aggregate([
        {$match: {'competition.id': parseInt(req.params.id)} },
        {$lookup: {
            from: 'competitions',
            localField: 'homeTeam.id',
            foreignField: 'standings.team.id',
            as: 'homeTeam.position',
        }}
    ]);
Run Code Online (Sandbox Code Playgroud)

我希望每场比赛都有这样的结果。

{
    ...,
    homeTeam: {
        id: …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb

5
推荐指数
1
解决办法
49
查看次数

标签 统计

javascript ×1

mongodb ×1

mongoose ×1