Database

db={"archives":[{"header":{"subject":"message-1","message-id":"a"}},{"header":{"subject":"Re:message-1","message-id":"b","reply-to":["a"]}},{"header":{"subject":"Re:message-1","message-id":"c","reply-to":["a"]}},{"header":{"subject":"message-2","message-id":"d"}},{"header":{"subject":"Re:message-2","message-id":"e","reply-to":["d"]}}]}

Query

db.archives.aggregate([{$match:{"header.reply-to":{$exists:false}}},{$lookup:{from:"archives",localField:"header.message-id",foreignField:"header.reply-to",as:"repliesCount"}},{$addFields:{repliesCount:{$size:"$repliesCount"}}}])

Result