使用mongodb(JOIN)进行查找聚合查询逆

时间:2019-05-21 19:34:38

标签: mongodb join mongodb-query lookup

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

根据the documentation,我可以将所有actions和他们的actor一起使用(有效):

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

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

是否可以进行逆向查询?我可以从actions关联到actors吗?

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

1 个答案:

答案 0 :(得分:0)

其工作方式相同,$lookup返回匹配文档的数组,因此要进行逆向查询,您需要进行以下汇总:

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