Có vẻ như bạn đang làm một số việc không chuẩn:
- Sử dụng
findOne
thay vìfind
nếu bạn chỉ muốn tải một người dùng - Đang gọi
Model.update
nên được thực hiện để cập nhật các bản ghi mà bạn chưa tải -
$inc
đang thêm oldPoints, vì vậy giá trị mới sẽ là 2 * oldPoints + newPoints - Bạn đang sử dụng
name
dưới dạng truy vấn có điều kiện thay vìUsername
Tôi sẽ viết lại mã thành một cái gì đó như thế này:
User.findOne({Username: name}, function(err, user){
if (err) { return next(err); }
user.Points += points;
user.save(function(err) {
if (err) { return next(err); }
});
});