mongoose save发现一个很坑爹的问题
发布于 9 年前 作者 ZhangHang-z 5791 次浏览 最后一次编辑是 8 年前 来自 问答

我是单独更新一个字段怎么也更新不上, 一直报这个错误 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 这个字段的时候,发现值为【英语】,尝试将【英语】转成数字类型,失败。

回到顶部