Vous pouvez dérouler le document intégré, puis faire correspondre le statut en utilisant groupby compter tous les documents.
db.collection.aggregate([
{ "$unwind": "$chat"},
{$match:{"chat.status": "pending"}},
{ "$group":{"_id":null, count: {$sum:1}}}
])
OU
Simplifiez la récupération de tous les documents et comptez la longueur du tableau
db.collection.aggregate([
{ "$unwind": "$chat"},
{$match:{"chat.status": "pending"}},
])