У меня есть эта модель данных:граф вложенный элемент с условием MongoDB
{_id: 1, userId: 1, elements: [{type:'a', startDate: 2015-10-10 20:00:00}]},
{_id: 2, userId: 2, elements: [{type:'b', startDate: 2016-10-10 20:00:00}]},
{_id: 3, userId: 1, elements: [{type:'c', startDate: 2016-10-10 20:00:00}]},
{_id: 4, userId: 1, elements: [{type:'a', startDate: 2016-10-10 20:00:00}]}
Я хотел бы, чтобы сосчитать все элементы для пользователя с условием на startDate
.
, например, подсчитать количество элементов для userId:1
и startDate
больше 2016-10-09 20:00:00
Я попытался
db.collection.aggregate([
{'$match': {userId: 1}},
{$group: {_id: null, elements: {$sum: {
"$cond": [
{ $gte : ['$elements.startDate', new ISODate("2016-10-09T20:00:00Z")] },
1,
0
]
}
}}}
]);
Результат должен быть 2, но это не работает, у вас есть какие-либо решения?