Database
[{messages:[{message:"message",from:"someId",createdAt:new Date(),read:false},{message:"message",from:"someId",createdAt:new Date(),read:false},{message:"message",from:"someId",createdAt:new Date(),read:true},]}]
Query
db.collection.aggregate([{$addFields:{unread:{$size:{$filter:{input:"$messages",as:"message",cond:{$eq:["$$message.read",false]}}}}}}])