Database

[{"city":"London","eventTime":NumberLong(1582866000),"createdTime":NumberLong(1582900145),"eventDetails":{}},{"city":"London","eventTime":NumberLong(1582866000),"createdTime":NumberLong(1582901000),"eventDetails":{}},{"city":"London","eventTime":NumberLong(1582866000),"createdTime":NumberLong(1582901500),"eventDetails":{}},{"city":"London","eventTime":NumberLong(1582867000),"createdTime":NumberLong(1582900145),"eventDetails":{}},{"city":"London","eventTime":NumberLong(1582867000),"createdTime":NumberLong(1582901000),"eventDetails":{}},{"city":"London","eventTime":NumberLong(1582867000),"createdTime":NumberLong(1582901500),"eventDetails":{}},{"city":"Paris","eventTime":NumberLong(1582866000),"createdTime":NumberLong(1582900145),"eventDetails":{}},{"city":"Paris","eventTime":NumberLong(1582866000),"createdTime":NumberLong(1582901000),"eventDetails":{}},{"city":"Paris","eventTime":NumberLong(1582866000),"createdTime":NumberLong(1582901500),"eventDetails":{}},{"city":"Paris","eventTime":NumberLong(1582867000),"createdTime":NumberLong(1582900145),"eventDetails":{}},{"city":"Paris","eventTime":NumberLong(1582867000),"createdTime":NumberLong(1582901000),"eventDetails":{}},{"city":"Paris","eventTime":NumberLong(1582867000),"createdTime":NumberLong(1582901500),"eventDetails":{}}]

Query

db.collection.aggregate([{$facet:{max:[{$group:{_id:{city:"$city",eventTime:"$eventTime"},max:{$max:"$createdTime"},data:{$push:"$$ROOT"}}},{$addFields:{max_events:{$filter:{input:"$data",cond:{$eq:["$max","$$this.createdTime"]}}}}},{$unwind:"$max_events"},{$replaceWith:"$max_events"}],closest:[{$group:{_id:{city:"$city",eventTime:"$eventTime"},data:{$push:"$$ROOT"}}},{$addFields:{closest:{$reduce:{input:"$data",initialValue:{$arrayElemAt:["$data",0]},in:{$cond:[{$lt:[{$abs:{$subtract:["$$this.eventTime","$$this.createdTime"]}},{$abs:{$subtract:["$$value.eventTime","$$value.createdTime"]}}]},"$$this","$$value"]}}}}},{$unwind:"$closest"},{$replaceWith:"$closest"}]}}])

Result