假设我有两个集合(actors
和actions
),其中一个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? */);
答案 0 :(得分:0)
其工作方式相同,$lookup返回匹配文档的数组,因此要进行逆向查询,您需要进行以下汇总:
db.actors.aggregate([
{
$lookup: {
from: 'actions',
localField: '_id',
foreignField: 'actorid',
as: 'actions'
}
}
]);