[英]How to use lookup in mongoose if local field have array form value in single dimension?
一个字段在单一维度上具有价值。 我想使用该字段查找另一个文档,但只获得一个记录。
这是我的用户架构和具有汇总查询的组织架构。 用户和组织文档中的数据
users[
{
_id:32442141dfdsaf2
name: user1
},
{
_id:42442141dfdsaf2
name: user2
},
]
orgs[
{
_id:87878978978
name: org1
userIds: array(ObjectId('32442141dfdsaf2'),ObjectId('42442141dfdsaf2'))
}
]
db.orgs.aggregate([
{
$lookup:
{
from: 'users',
let: { assignedTo: '$userIds' },
pipeline: [
{
$match: {
$expr: {
$and: [
{ $in: ['$_id', '$$assignedTo'] },
],
},
},
},
],
as: 'users',
},
},
])
如果localField是一个数组,则可以将数组元素与标量foreignField进行匹配,而无需$ unwind阶段。
db.orgs.aggregate([{
$lookup:
{
from: "users",
localField: "userIds",
foreignField: "_id",
as: "users"
}
}])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.