Database

db={bookings:[{"_id":ObjectId("609a382b589346973c84c6fe"),"Name":"abc","UserId":1,"Status":"Pending","Invoices":[ObjectId("709a382b5c6fe89346973c84")],"BookingData":{"Date":ISODate("2021-04-30T04:00:00.000Z"),"info":[],"BookingDataMethod":"avf","Message":null,"products":[{"_id":ObjectId("60a4e92775e5de3570578820"),"ProductName":"Test1","ProductID":ObjectId("60a4e92475e5de357057880a"),"IsDeliveryFailed":"Yes"},{"_id":ObjectId("60a4e92775e5de357057881f"),"ProductName":"Test2","ProductID":ObjectId("60a4e92475e5de357057880d")}],}}],invoices:[{"_id":ObjectId("709a382b5c6fe89346973c84"),"invoiceNumber":1,"InvoiceData":[{"_id":ObjectId("60a4e92775e5de3570578820"),"ProductName":"Test1","InvoiceID":1,"IsPaymentFailed":"Yes"},{"_id":ObjectId("60a4e92775e5de357057881f"),"InvoiceID":2,"ProductName":"Test2",}]}]}

Query

db.bookings.aggregate([{"$match":{"PaymentStatus":{$ne:"Delivered"}}},{$set:{"BookingData.products":{"$filter":{"input":"$BookingData.products","cond":{$and:[{$ne:["$$this.ProductID",undefined]},{$ne:["$$this._id",null]},{$ne:["$$this.IsDeliveryFailed","Yes"]}]}}}}},{"$lookup":{"from":"invoices","localField":"Invoices","foreignField":"_id","as":"invoiceInfo"}},{$set:{invoiceInfo:{$map:{input:"$invoiceInfo",as:"info",in:{InvoiceData:{$filter:{input:"$$info.InvoiceData",as:"data","cond":{$and:[{$ne:["$$data.InvoiceID",undefined]},{$ne:["$$data.InvoiceID",null]},{$ne:["$$data.IsPaymentFailed","Yes"]}]}}}}}}}},{$set:{invoiceInfo:{$filter:{input:"$invoiceInfo",cond:{$ne:["$$this.InvoiceData",[]]}}}}},{$match:{$expr:{$or:[{$ne:["$BookingData.products",[],]},{$ne:["$invoiceInfo",[],]}]}}}])

Result