Możesz rozwinąć osadzony dokument, a następnie dopasować stan, a następnie używając groupby policzyć wszystkie dokumenty.
db.collection.aggregate([
{ "$unwind": "$chat"},
{$match:{"chat.status": "pending"}},
{ "$group":{"_id":null, count: {$sum:1}}}
])
LUB
Uprość pobieranie wszystkich dokumentów i policz długość tablicy
db.collection.aggregate([
{ "$unwind": "$chat"},
{$match:{"chat.status": "pending"}},
])