Database
db={"merchants":[{"name":"m1","_id":"5b53494987eea4171d199dd3"},{"name":"m2","_id":"5b53495087eea4171d199dd4"},{"name":"m3","_id":"5b53495987eea4171d199dd5"}],"transactions":[{"_id":"5b53494987eea4171d199dd4","merchantId":"5b53494987eea4171d199dd3","status":"capture_pending"},{"_id":"5b53494987eea4171d199dd0","merchantId":"5b53494987eea4171d199dd3","status":"done"},{"_id":"5b53494987eea4171d199dd8","merchantId":"5b53495987eea4171d199dd5","status":"capture_pending"},{"_id":"5b53494987eea4171d199de8","merchantId":"5b53495987eea4171d199dd5","status":"capture_pending"},{"_id":"5b53494987eea4171d199dd9","merchantId":"5b53495087eea4171d199dd4","status":"done"},{"_id":"5b53494987eea4171d199de9","merchantId":"5b53495087eea4171d199dd4","status":"done"}]}
Query
db.merchants.aggregate([{"$lookup":{from:"transactions",localField:"_id",foreignField:"merchantId",as:"merchantTransactions",}},{"$addFields":{"hasHolds":{"$cond":{"if":{"$gt":[{$size:{"$filter":{"input":"$merchantTransactions.status","as":"st","cond":{"$eq":["$$st","capture_pending"]}}}},0]},"then":true,"else":false}}}}])