Database

[{x:1},{x:2},{x:3},{x:7},{x:20},{x:25},{x:22},{x:23},]

Query

db.collection.aggregate([{"$sort":{x:1}},{$group:{_id:null,temp:{$push:"$$ROOT"}}},{"$project":{_id:0,"temp_field":{"$reduce":{"input":"$temp","initialValue":{"prev":-999999,"min":-999999,"count":0,"ranges":[]},"in":{"prev":"$$this.x","count":{"$cond":[{$gt:[{"$subtract":["$$this.x","$$value.prev"]},1/**sequence step*/],},1,{"$add":["$$value.count",1]}]},"min":{"$cond":[{$gt:[{"$subtract":["$$this.x","$$value.prev"]},1/**sequence step*/],},"$$this.x","$$value.min"]},"ranges":{"$concatArrays":["$$value.ranges",{"$cond":[{$gt:[{"$subtract":["$$this.x","$$value.prev"]},1/**sequence step*/],},[{max:"$$value.prev",min:"$$value.min",count:"$$value.count"}],[]]}]}}}}}},{"$project":{ranges:{"$concatArrays":["$temp_field.ranges",[{max:"$temp_field.prev",min:"$temp_field.min",count:"$temp_field.count"}]]}}}])

Result