[英]MongoDB Aggregate multiple local fields on $lookup
我正在使用聚合来为每个父文档获取 4 个子文档。 不过,子文档都来自同一个集合。
[
{
'$lookup': {
'from': 'Roles',
'localField': 'dentistId',
'foreignField': '_id',
'as': 'DENTIST'
}
}, {
'$lookup': {
'from': 'Roles',
'localField': 'doctorId',
'foreignField': '_id',
'as': 'DOCTOR'
}
}, {
'$lookup': {
'from': 'roles',
'localField': 'lawyerId',
'foreignField': '_id',
'as': 'LAWYER'
}
}, {
'$lookup': {
'from': 'roles',
'localField': 'ceoId',
'foreignField': '_id',
'as': 'CEO'
}
}
]
我正在使用 MongoDB > 4 的版本。我希望只有 1 个$lookup
然后执行类似的操作
localField: { $in:[dentistId, doctorId, lawyerId, ceoId }
有没有办法巩固这一点?
谢谢!
childDocs
,并在其中推送所有 id,localField
中传递该字段[
{
$addFields: {
childDocs: [
"$dentistId",
"$doctorId",
"$lawyerId",
"$ceoId"
]
}
},
{
'$lookup': {
'from': 'roles',
'localField': 'childDocs',
'foreignField': '_id',
'as': 'childDocs'
}
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.