У меня есть коллекция заказов:
Orders:
{
//some typical order fields
cancelationMoment: {
type: Date
},
consumer: {
type: Schema.Types.ObjectId,
required: 'consumer id required'
}
}
Я хочу получить потребителей, у которых больше отмененных заказов (топ 10%).
Моя текущая реализация:
db.orders.aggregate([
{$match:{ cancelationMoment: { $exists: true } }},
{"$group" : {_id:"$consumer", ordersCanceled:{$sum:1}}
},
{$sort:{"ordersCanceled":-1}},
{ $limit: 2}
]);
Но я хочу получить не только топ-2, но и топ-10%.Возможно ли это?
Спасибо.