1
Я хочу знать, может ли эта часть кода быть написана по-разному, только с помощью методов поддержки моделей Mongoose? Могу ли я вернуть успех и ошибку, если нет запаса больше 0?Mongoose loop через findOneAndUpdate condition statement
ProductSchema.statics.substractStock = function (products) {
_.map(products, updateStock)
function updateStock(o) {
mongoose.model('Product').findById(o._id, function (err, product) {
return product
}).then(function(productDB){
if(productDB.stock > o.stock && productDB.stock > 0){
mongoose.model('Product').findOneAndUpdate(o._id, {$inc: {stock: -(o.stock)}}, {},
function (err, doc) {
//return success ??
}
);
} else {
//return 'no update'
}
});
}
};
К сожалению , я думаю, что это хороший способ, но он не работает, мне нужно изменить 'findOneAndUpdate' на' findOne' ?? err и doc возвращают null. – user3703539
Затем используйте 'update()', который вернет результат записи и проверит, было ли обновление или нет – chridam