Database

[{id:"1",initialValue:100,currentValue:150,creationDate:ISODate("2022-11-08")},{id:"2",initialValue:110,currentValue:150,creationDate:ISODate("2022-11-08")},{id:"3",initialValue:120,currentValue:160,creationDate:ISODate("2022-11-08")}]

Query

db.collection.aggregate([{"$addFields":{"diff":{"$subtract":["$currentValue","$initialValue"]}}},{"$setWindowFields":{"partitionBy":null,"sortBy":{"diff":-1},"output":{"rank":{$rank:{}}}}},{$sort:{rank:1}},/** cosmetics*/{"$unset":["diff","rank"]}])

Result