Database
db={"auctions":[{"_id":1,"status":"SCHEDULED","auctioncode":12,"quantity":2},{"_id":2,"status":"FAILED","auctioncode":12,"quantity":2},{"_id":3,"status":"UNPAID","auctioncode":12,"quantity":3},{"_id":4,"status":"SCHEDULED","auctioncode":12,"quantity":4},{"_id":5,"status":"FAILED","auctioncode":12,"quantity":5},]}
Query
db.auctions.aggregate([{"$match":{"$or":[{"$and":[{status:{$ne:"SCHEDULED"}},{status:"FAILED"}]},{"$and":[{status:{$ne:"RUNNING"}},{status:"FAILED"}]}]}},{"$group":{"_id":"$auctioncode","auctioncode":{"$first":"$auctioncode"},"Details":{"$addToSet":"$$ROOT"}}}])