Count Elements SubDocument, das einem bestimmten Kriterium entspricht

Ich habe die folgende Dokumentstruktur in 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
                    }
                    ...
            ]
    }
}

Ich möchte die Anzahl der Konversationen aus den Sub-Arrays zählen.personal undgroup bei dem dielast_read ist für einen bestimmten Benutzer null. Bitte wie kann ich das erreichen?

Ich habe es versucht

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

aber hat die gewünschte Ausgabe nicht bekommen. Haben Sie bitte bessere Ideen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage