Database

[{"_id":"5eabf8b144345b36b00bfbaa","ranktime":[{"pos":"2","datum":"Mon May 05 2020 12:22:52 GMT+0200 (GMT+02:00)","source":"SOURCE2"},{"pos":"1","datum":"Fri May 01 2020 12:23:10 GMT+0200 (GMT+02:00)","source":"SOURCE1"},{"pos":"37","datum":"Fri May 01 2020 12:25:14 GMT+0200 (GMT+02:00)","source":"SOURCE2"},{"pos":"12","datum":"Fri May 01 2020 12:25:14 GMT+0200 (GMT+02:00)","source":"SOURCE2"},{"pos":"37","datum":"Fri May 01 2020 18:45:27 GMT+0200 (GMT+02:00)","source":"SOURCE2"}]}]

Query

db.collection.aggregate([{$addFields:{ranktime:{$reduce:{input:"$ranktime",initialValue:[],in:{$let:{vars:{last:{$arrayElemAt:["$$value",-1]}},in:{$cond:[{$and:[{"$eq":["$$last.source","SOURCE2"]},{"$eq":[{$substr:["$$last.datum",0,15]},{$substr:["$$this.datum",0,15]}]},]},"$$value",{$concatArrays:["$$value",["$$this"]]}]}}}}}}}])

Result