Database

[{"thread":"war conference","message":"stop","sentInMilli":1696858510000,/** oldest message in war conference*/"statuses":[{"readInMilli":1696858547857}]},{"thread":"economic conference","message":"welcome on economic conference","sentInMilli":1696858520000,/** newest message in economic conference*/"statuses":[{"readInMilli":1696858547857}]},{"thread":"war conference","message":"the war","sentInMilli":1696858530000,/** newest message in war conference*/"statuses":[]}]

Query

db.collection.aggregate([{"$group":{"_id":"$thread","timeInMilliOfNewestMessage":{"$max":"$sentInMilli"},"containsUnreadMessages":{"$min":{$size:"$statuses"}}}},{"$addFields":{"containsUnreadMessages":{"$cond":{"if":{$eq:["$containsUnreadMessages",0]},"then":true,"else":false}}}}])

Result