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]}}}}}}])

Result