мне нужен запрос, как это:Mongoose - как группы по двум различным пунктам
db.items.aggregate([
{
$group: {
_id: '$dataset_id',
labeledCount: {WHERE labels.length>0}, // this line is problem
totalCount: {$sum: 1}
}
}])
объект Item выглядит следующим образом:
{
_id: 1,
labels: [...]
...
}
результат должен выглядеть следующим образом:
{_id: 1, labeledCount: 4, totalCount: 5},
{_id: 2, labeledCount: 0, totalCount: 4},
...
EDIT:
Это clo сьесть я получил:
db.items.aggregate(
[
{
$group : {
_id : "$dataset_id",
"labeled" : {
$sum : {
$cond : { if: { "$labels.0": { "$exists": true } }, then: 1, else: 0}
}
},
"total" : { $sum : 1 }
}
}
]
)
Сейчас я получаю сообщение об ошибке:
"exception: dotted field names are only allowed at the top level",
Это будет работать с версиями mongodb версии 2.6 и выше –