它的更新仅为false到true,不适用于true到false。我使用的是node.js mongodb和express.js
这是我的模式:
approve:{
type: Boolean, default: false
}
index.js
.post('/update', function(req, res, next) {
var id = req.body.id;
var value = req.value;
console.log(req.body);
var update_stock = stmodel.findByIdAndUpdate(id, { $set: { approve: "value" } });
update_stock.exec(function(err, doc) {
if (err) throw err;
});
我认为问题是当您试图将value
设置为req.value
时,它应该是req.body.value
var value = req.body.value;
此外,您必须确保value
是Boolean
,因为根据您的schema
,它需要是Boolean
,或者如果它是String
或Boolean
,您也可以处理它,如下所示:
let approve = value === "true" ? true : ( value === "false" ? false : undefined);
stmodel.findByIdAndUpdate(id, { $set: { approve: approve } });