mongoDB 多表联查 关联多个字段

最新来的项目上了个mongodb数据库,然后我负责的部分涉及到了多表联查。
问题来了,多表联查的时候,表A.a字段 需要关联 表B.a, B.c两个字段,而 $lookup: 只能关联一个字段,本来mongodb就不是很熟,这下给我难住了。
原mysql语句是这样的(mysql多好,又简单又方便)

SELECT
    * 
FROM
    fsoc_host_info h
    LEFT JOIN fsoc_device_info d ON h.host_ip = d.enter_host 
    OR host_ip = d.out_host 
WHERE
    d.type IN ( "Door", "Gate", "Barrier" )

下面会附上mongodb的语句与数据

db.HostInfo.insert(//新增
{host_id : 3,host_ip : "10.0.60.102",host_name : "DH-ASI1212A(V2)",host_port : 37777,host_user : "admin",host_password : "123456",host_type : "2",host_is_defense : 1},
{host_id : 3,host_ip : "10.0.60.103",host_name : "DH-ASI1212A(V2)",host_port : 37777,host_user : "admin",host_password : "123456",host_type : "2",host_is_defense : 1})



db.DeviceInfo.insert(
{device_id : 1,region_id : 2,name : "研发部门闸",type : "Gate",enter_host : "10.0.60.98",out_host : "10.0.60.99",enter_channel : 0,out_channel : 0, company : "DAHUA",bind_gate_id:1,time_stamp:"2020-03-24 17:07:33"},
{device_id : 2,region_id : 2,name : "研发部门禁",type : "Door",enter_host : "10.0.60.100",out_host : "10.0.60.100",enter_channel : 0,out_channel : 0, company : "DAHUA",bind_gate_id:1,time_stamp:"2020-03-24 17:07:35"});

// 高级聚合框架 
db.HostInfo.aggregate([ //HostInfo 主表
    {
        $lookup: 
        {
            from: "DeviceInfo", //从表
            localField: "host_ip", //主表关联字段
            foreignField: "enter_host", //从表关联字段
            as: "aaa"           //为输出文档的新增值命名(值为关联的从表数据)
        }
    },
        {
         $unwind:'$aaa'
    },
//      {
//               $match : {"aaa" : { $ne: [] } }    //关联的从表数据 aaa 不为空  $matc相当于where条件
//      },
//      {
//               $match : {host_name : "DH-ASG2910Z" } //主表筛选条件
//      },
//      {
//               $match : {"aaa.type" : "Gate"}  //从表筛选条件
//      },
//      {
//        $project: {//指定从表输出字段  指定后主表字段不输出
//           host_ip: "$aaa.enter_host"
//        }
//    },
])


db.HostInfo.aggregate([ //单表查询
    {
//      {
//                  $match: {host_ip: { $in: ['10.0.60.99','10.0.60.98',"10.0.60.100"] } } //host_ip = 60.98 或 60.99 or 60.100   in
//      },
    $match: { $or: [{ host_ip: '10.0.60.98' }, { host_ip: '10.0.60.99' }] }//or 
    }
]);

球球各位大佬给指点一下,mongoDB 多表联查,同时表A一个字段,关联表B的两个字段要怎么写出对应的语句。

球球各位大佬给指点一下,mongoDB 多表联查,同时表A一个字段,关联表B的两个字段要怎么写出对应的语句。

参考:https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#lookup-join-pipeline

db.HostInfo.aggregate([ //HostInfo 主表
    {
        $lookup: 
        {
            from: "DeviceInfo", //从表
                        "let": {
                    "host_ip ": "$host_ip "
                },
                 "pipeline": [
                 { $match: 
                     { $expr: {
                                        $or: [ { $eq: ["$enter_host ","$$host_ip" ] },  { $eq: ["$out_host ","$$host_ip" ] } ]
                                        }
                                        }
                                    }
                                ],
            as: "aaa"           //为输出文档的新增值命名(值为关联的从表数据)
        }
    }
    ])