Mongoose $ inc с максимальным значением - PullRequest
0 голосов
/ 12 июня 2018

Так что я сейчас пытаюсь выполнить эту операцию

return this.model.findByIdAndUpdate(id, { $push: { certifiedBy: certifier } }, { $inc: {score: 1}}, { new: true })

Проблема здесь в том, что score будет расти без ограничений, я хотел бы предотвратить это и сделать так, когда это происходитне может увеличиваться, если score <= 5, но все равно добавляет certifier в мой массив certifiedBy.

Можно ли это сделать напрямую с помощью mongoose или мне нужно сначала получить объект, если он превышает 5, и вызвать другойзапрос в таком случае?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

Вы не можете изменить поведение $ inc, но вы можете создать контрольную точку, чтобы остановить ее до 5

return this.model.findOneAndUpdate({
    _id: id,
    score: {
        $lte: 5
    }
}, {
        $push: { certifiedBy: certifier },
        $inc: { score: 1 }
    },
    {
        new: true
    })
...