У меня есть коллекция «продукт», в которой есть поле «категория». Я пытаюсь подсчитать различные категории. Я не могу использовать db.product.distinct ("category"). Length, так как он превышает 16 МБ с ошибкой ниже: -
> db.product.distinct("category").length
2014-07-21T08:58:25.289-0400 distinct failed: {
"errmsg" : "exception: distinct too big, 16mb cap",
"code" : 17217,
"ok" : 0
} at src/mongo/shell/collection.js:1108
Итак, я использую для этого фреймворк агрегации, и я могу получить счет, используя этот запрос: -
db.product.aggregate([{$group: {_id:"$category"}}, {$group: {_id:"", count:{$sum:1}}}], {allowDiskUse: true})
Я не могу перевести это в запрос агрегации Spring data mongodb. Пожалуйста помоги. Я получаю следующие ошибки с тем, что я пробовал:
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.group("category"),
Aggregation.group(" ").count().as("numDistinctCategories"));
Ошибка: AggregationField не может иметь значение NULL. Я пробовал другие строки во второй групповой операции, но это дает ошибку недопустимой ссылки.