У меня есть своя совокупность, которую я тестирую, чтобы группировать документы по категориям и ограничивать результаты для каждой группы до N, которая в примере равна 20, так как мне нужно всего 100 результатов, и у меня есть 5 категорий.mongo query и slice Значение N
Значение 100 останется постоянным, но в случае, если число категорий может измениться, вместо жесткого кодирования целого числа я задавался вопросом, можно ли его вычислить? slice
documentation говорит N can be any expression as long as it resolves to an integer
, но не уверен, как заменить 20 чем-то более похожим на 100/category_count
?
{
$sort: {
created_at: 1
}
}, {
$group: {
_id: {
category: "$category",
created_at: "$created_at",
video_id: "$video_id"
}
}
}, {
$group: {
_id: "$_id.category",
items: {
$push: {
created_at: "$_id.created_at",
video_id: "$_id.video_id"
}
}
}
}, {
$project: {
items: {
$slice: ["$items", 0, 20]
}
}
}
Благодаря Flo
Что такое "category_count"? это имя вычисленного поля? – styvane