Database

[{"_id":"card-id-1","userId":"user-id-1","status":"READY"},{"_id":"card-id-2","userId":"user-id-1","status":"CANCELLED"},{"_id":"card-id-3","userId":"user-id-1","status":"ACTIVE"},{"_id":"card-id-4","userId":"user-id-1","status":"READY"}]

Query

db.collection.aggregate([{"$facet":{"hasActive":[{$match:{userId:"user-id-1",status:"ACTIVE"}},{"$limit":1}]}},{"$project":{_id:{$ifNull:[{$first:"$hasActive._id"},"card-id-4"/** chosen fallback id*/]},userId:"user-id-1",status:"ACTIVE"}},{"$merge":{"into":"collection","on":"_id","whenMatched":"merge"}}])

Result