mongoose save发现一个很坑爹的问题
我是单独更新一个字段怎么也更新不上, 一直报这个错误 Cast to number failed for value "英语" at path "lang"
于是我就去找了, 发现因为以前数据库里 lang 字段是 String类型, 现在改了Schema验证, 强制为Number, 但是以前的数字没有修改过来.
前端是个<select>
选项框, 后台是这样保存数据的.
Series.findById(id, function(err, doc) {
if (doc)
{
doc.lang = req.body['lang']; \\ 获取到 lang 值为1
doc.save(function (err, result) {
if (err) console.log(err);
console.log(result);
});
result打印出来明明以前的字符串’英语’变成了数字1 但是去mongodb上查看还是为’英语’
必须前端 <selecti>
选项框, 选择一下别的, 以前的字符串才能成功变成数字,
2 回复
。。。。。。。。。。。。。。。。。。
Cast to number failed for value "英语" at path "lang"
这一句的意思是:在遇到 lang 这个字段的时候,发现值为【英语】,尝试将【英语】转成数字类型,失败。
@alsotang 受教了!!!