Разобрался таким запросом :
let employees = await models.employee.aggregate([
{
$match: {
login: login.toLowerCase(),
},
},
{
$lookup: {
from: "positiontypes",
let: {
position: "$position",
function: "$function",
bloc: "$bloc",
specialProperties: "$specialProperties",
},
pipeline: [
{
$match: {
$expr: {
$and: [
{ $eq: ["$$position", "$position"] },
{ $eq: ["$$function", "$function"] },
{ $eq: ["$$bloc", "$bloc"] },
{
$allElementsTrue: {
$map: {
input: "$$specialProperties",
as: "elem",
in: {
$and: {
$in: [
"$$elem",
"$specialProperties",
],
},
},
},
},
},
],
},
},
},
],
as: "positiontype",
},
}, ]);