使用聚合框架,首先对workers集合进行$lookup操作连接managers集合。然后使用$match操作筛选出既是worker又是manager的记录。最后使用$project操作选择需要打印的字段。
示例代码如下:
db.workers.aggregate([
{
$lookup:
{
from: "managers",
localField: "name",
foreignField: "name",
as: "managerDetails"
}
},
{
$match:
{
managerDetails: { $ne: [] }
}
},
{
$project:
{
_id: 0,
name: 1,
age: 1,
jobTitle: 1,
department: 1,
manager: "$managerDetails.name"
}
}
])