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"}}},{"$lookup":{"from":"invoices","localField":"Invoices","foreignField":"_id","as":"invoiceInfo"}},{"$match":{"$or":[{"BookingData.products":{"$exists":true}},{"invoiceInfo.InvoiceData":{"$exists":true}}]}},{$set:{"BookingData.products":{"$filter":{"input":"$BookingData.products","cond":{$and:[{$ne:["$$this.ProductID",undefined]},{$ne:["$$this._id",null]},{$ne:["$$this.IsDeliveryFailed","Yes"]}]}}}}},{$set:{"invoiceInfo.InvoiceData":{"$filter":{"input":"$invoiceInfo.InvoiceData","cond":{$and:[{$ne:["$$this.InvoiceID",undefined]},{$ne:["$$this._id",null]},{$ne:["$$this.IsPaymentFailed","Yes"]}]}}}}},{$match:{$expr:{$or:[{$ne:["$BookingData.products",[],]},{$ne:["$invoiceInfo.InvoiceData",[],]}]}}}])