Database

[{"_id":"oI","msg":"Hello","ts":ISODate("2019-09-20T01:01:43.749Z")},{"_id":"z","msg":"can you hear me?","ts":ISODate("2019-09-20T01:01:46.569Z"),"tcount":3},{"_id":"wG","msg":"Undsen bichver 2","ts":ISODate("2019-09-20T02:00:58.254Z")},{"_id":"BF","msg":"Undsen bichver 3","ts":ISODate("2019-09-20T02:01:06.784Z")},{"_id":"Jq","msg":"Undsen bichver 4","ts":ISODate("2019-09-20T02:01:11.785Z")},{"_id":"Lq","parentId":"z","msg":"Test 3","ts":ISODate("2019-09-20T02:01:24.370Z")},{"_id":"oP","parentId":"z","msg":"Test 1","ts":ISODate("2019-09-20T01:02:06.860Z")},{"_id":"Mq","parentId":"z","msg":"Test 2","ts":ISODate("2019-09-20T01:05:37.173Z")}]

Query

db.collection.aggregate([{$lookup:{from:"collection",localField:"parentId",foreignField:"_id",as:"parent"}},{$addFields:{fake_ts:{$cond:{if:{$eq:[{$size:"$parent"},1]},then:"$parent.ts",else:"$ts"}}}},{$sort:{fake_ts:1,ts:1}},{$project:{fake_ts:0,parent:0}}])

Result