У меня есть следующая структура документа в 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"}
}
}
]
);
, но не получил его желаемого выхода. Любые лучшие идеи, пожалуйста?