I am able to successfully implement the lookup, but the problem is that; I don't need the records which doesn't have any record to join in child collection. Currently I am getting blank array for child field, if no matching record found in child collection. Note: I am using MongoDB Flexible Schema
$lookup: {
from: 'childCollection',
let: {
typeId: {
'$toObjectId': '$typeId'
}
},
pipeline: [{
$match: {
$expr: {
$eq: ['$_id', '$$typeId']
},
$or: [{
'field1': {
$regex: 'searchkey',
$options: "i"
}
}, {
'field2': {
$regex: 'searchkey',
$options: "i"
}
}]
}
}],
as: 'test'
}