Вот примерное представление моей коллекции mongodb:
{
user: ID1,
type: 'redemption,
amount: 200
},
{
user: ID2,
type: 'redemption,
amount: 1000
},
{
user: ID1,
type: 'redemption',
amount: 300
},
{
user: ID3,
type: 'redemption',
amount: 3000
}
Поле "type" является переменным (выкуп, передача и т. Д. c ...). То, с чем я борюсь, это найти то, что пользователи выкупили наибольшее количество баллов. В данном конкретном случае, ID3 является лучшим получателем с 3000 баллов, ID2 является вторым (1000), а ID1 является третьим (300 + 200 = 500).
Какие пн go операции я должен искать на?
ps Я вроде как туда попал:
aggregate([
{
$group : {
_id : "$user",
redeemedTotal: { $sum: "$amount" }
}
}
])
Но это $ sum не только тип: 'выкуп', но и другие типы сумм. Как мне сузить это до просто type: 'redemption'
pps Я думаю, я получил это:
.aggregate([
{
$match: { "type": "redemption" }
},
{
$group : {
_id : "$sender",
redeemedTotal: { $sum: "$amount" }
}
}
])