Database

db={"products":[{"_id":1,"storeId":1,"invoiceId":3,"unitPrice":127,"quantity":21,"timestamp":"1558330027"},{"_id":2,"storeId":2,"invoiceId":2,"unitPrice":140,"quantity":25,"timestamp":"1552293229"},{"_id":3,"storeId":1,"invoiceId":2,"unitPrice":192,"quantity":80,"timestamp":"1576270154"},{"_id":4,"storeId":1,"invoiceId":3,"unitPrice":192,"quantity":80,"timestamp":"1557557866"},{"_id":5,"storeId":2,"invoiceId":3,"unitPrice":157,"quantity":4,"timestamp":"1569726399"},{"_id":6,"storeId":1,"invoiceId":2,"unitPrice":153,"quantity":50,"timestamp":"1563319904"},{"_id":7,"storeId":3,"invoiceId":3,"unitPrice":148,"quantity":49,"timestamp":"1576701427"},{"_id":8,"storeId":3,"invoiceId":2,"unitPrice":169,"quantity":3,"timestamp":"1561930763"},{"_id":9,"storeId":1,"invoiceId":1,"unitPrice":168,"quantity":23,"timestamp":"1552835194"},{"_id":10,"storeId":1,"invoiceId":3,"unitPrice":125,"quantity":92,"timestamp":"1577410244"}],"invoices":[{"_id":1,"customer":"Y-find","netTotal":1,"paid":true,"type":"stale"},{"_id":2,"customer":"Namfix","netTotal":72,"paid":true,"type":"sale"},{"_id":3,"customer":"Opela","netTotal":67,"paid":false,"type":"fail"}]}

Query

db.products.aggregate([{$lookup:{"from":"invoices","let":{inv_id:"$invoiceId"},"pipeline":[{$match:{$expr:{$eq:["$$inv_id","$_id"]}}}],as:"invoice"}},{$unwind:{path:"$invoice"}},{$match:{"invoice.type":"sale"}},{$unset:"invoice"}])

Result