如果条件,如何在mongodb的另一个查询中使用一个查询布尔值?

时间:2021-03-09 05:13:34

标签: mongodb

我正在尝试使用另一个查询中的一个查询结果来根据条件获取详细信息。

MongoDB:

 [err, deviceTypeData]= await to(DeviceTypes.findOne({"_id":payload.deviceType}))

        [err, data] = await to(Template.aggregate([
            {
                $match:{
                    _id: new mongoose.Types.ObjectId(payload.templateId)
                }
            },{
                $project:{
                    deviceSettings:{
                        $filter:{
                            input:"$deviceSettings",
                            as:"deviceSettings",
                            cond:{
                                $or: [
                                    {
                                        $eq:["$$deviceSettings.deviceType", new mongoose.Types.ObjectId(payload.deviceType)]
                                    },{
                                         if:{$eq:[deviceTypeData.enableGPS, true]},
                                         then: {$eq:["$$deviceSettings.name", "deviceId"]}, 
                                         else: { $eq:["$$deviceSettings.name", "deviceId"],$eq:["$$deviceSettings.name", "latitude"],
                                         $eq:["$$deviceSettings.name", "longitude"]} 
                                    }
                                ]
                            }
                        }
                    }
                }
            }
        ]));

在上面的查询中,我试图在第二个查询中使用第一个查询结果 deviceTypeData.enableGPS 值 if 条件但它不起作用。

0 个答案:

没有答案