@ShahriyorSharifjonov

Mongoose группировать по пользователю и расcчитать amount?

Я использую MongoDB и Mongoose в качестве ODM в next.js, и я пытаюсь сгруппировать по пользователю и рассчитать amount.
Schema:
const bonusFillSchema = new mongoose.Schema({
    user: {
        type: Schema.Types.ObjectId,
        required: true,
    },
    amount: {
        type: Number,
        required: true,
    }, {
    timestamps: true
})
}

let Dataset = mongoose.models.bonusFill || mongoose.model('bonusFill', bonusFillSchema)
export default Dataset

Я просто пытаюсь получить каждую запись BonusFill, сгруппировать по каждому пользователю и рассчитать всю сумму.
import Fill from '../../../models/bonusFill'
const fills = await Fill.find()

Output
{
    "fills": [
        {
            "_id": "63244477301b6fd9d3116d37",
            "user": "631ce46b9bed2e97ba77a0a3",
            "amount": 100,
            "createdAt": "2022-09-16T09:40:07.179Z",
            "updatedAt": "2022-09-16T09:40:07.179Z",
            "__v": 0
        },
        {
            "_id": "63244487301b6fd9d3116d67",
            "user": "631ce46b9bed2e97ba77a0a3",
            "amount": 120,
            "createdAt": "2022-09-16T09:40:23.017Z",
            "updatedAt": "2022-09-16T09:40:23.017Z",
        },
{
            "_id": "63244487301b6fd9d3116d67",
            "user": "632ce66b9bqd2e97baa795a4",
            "amount": 50,
            "createdAt": "2022-09-16T09:40:23.017Z",
            "updatedAt": "2022-09-16T09:40:23.017Z",
        },
    ]
}

Expected Output
{
    "fills": [
        {
            "user": "631ce46b9bed2e97ba77a0a3",
            "amount": 220,
        },
        {
            "user": "632ce66b9bqd2e97baa795a4",
            "amount": 50,
        },
    ]
}
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@kapp1
Вам поможет aggregate $group $sum
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы