与 mongodb (JOIN) 反向的查找聚合查询

Lookup aggregation query inverse with mongodb (JOIN)

假设我有两个集合(actorsactions),其中一个 actor 有 N actions。在 actions 集合中,我有一个 actorId 引用 actors 集合。

根据 the documentation,我可以用他们的 actor 得到所有 actions 像这样(有效):

db.actions.aggregate([
  {
    '$unwind': '$actorId'
  },
  {
    $lookup: {
      from: 'actors',
      localField: 'actorId',
      foreignField: '_id',
      as: 'actor'

    }
  },
  {
    '$unwind': '$actor'
  }
]);

有没有办法进行逆向查询?我可以从 actors 获得关联 actions 吗?

db.actors.aggregate(/* how can I get actions? */);

它的工作方式相同,$lookup returns 一个匹配文档数组,因此要 运行 反向查询您需要以下聚合:

db.actors.aggregate([
    {
        $lookup: {
            from: 'actions',
            localField: '_id',
            foreignField: 'actorid',
            as: 'actions'
        }
    }
]);