1
我想知道這部分代碼是否可以以不同的方式寫入,只能使用模型的Mongoose輔助方法?如果沒有大於0的股票,我可以返回成功和錯誤嗎?通過findOneAndUpdate條件語句的Mongoose循環
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