Подсчет элементов SubDocument, которые соответствуют заданному критерию

У меня есть следующая структура документа в mongodb

{
    "_id" : "123",
    "first_name" : "Lorem",
    "last_name" : "Ipsum",
    "conversations" : {
            "personal" : [
                    {
                            "last_message" : "Hello bar",
                            "last_read" : 1474456404
                    },
                     {
                            "last_message" : "Hello foo",
                            "last_read" : 1474456404
                    },
                    .,..
            ],

            "group" : [
                    {
                            "last_message" : "Hello Everyone",
                            "last_read" : null
                    }
                    ...
            ]
    }
}

Я хочу посчитать количество разговоров из под-массивов,personal а такжеgroup гдеlast_read является нулевым для данного пользователя. Пожалуйста, как мне этого добиться?

Я старался:

db.messages.aggregate(
   [
    { $match: {"_id":"123", 'conversations.$.last_read': null }},
      {
         $group: {
            {$size: "$conversations.personal"}, {$size: "$conversations.group"}
         }
      }
   ]
);

но он не получил желаемый результат. Есть идеи получше, пожалуйста?

Ответы на вопрос(2)

Ваш ответ на вопрос