Javascript 验证转换为数字失败

Javascript 验证转换为数字失败,javascript,mongodb,mongoose,schema,Javascript,Mongodb,Mongoose,Schema,我在路径badgeid处得到验证错误,为什么当我在badgeid是一个数字时得到它,而我保存的是一个数字时得到这个` 我已经检查过的检查: 成就值为5 成就类型为数字 错误: (node:8260) UnhandledPromiseRejectionWarning: ValidationError: achievement_users validation failed: badgeid: Cast to Number failed for value "{ badgeid: 0, prog

我在路径badgeid处得到验证错误,为什么当我在badgeid是一个数字时得到它,而我保存的是一个数字时得到这个`

我已经检查过的检查:

成就
值为5

成就
类型为数字

错误:

(node:8260) UnhandledPromiseRejectionWarning: ValidationError: achievement_users validation failed: badgeid: Cast to Number failed for value "{ badgeid: 0,
  progress: 0,
  _id: 5c94c04a758c8a204440499e }" at path "badgeid"
保存代码:

  var achievement = new achivementUsers();
            achievement.badgeid = achievement;
            return achievement.save().then(function (response) {
模式:

{
    badgeid: {type: Number, default: 0},
    progress: {type: Number, default: 0},
    completed: {type: Boolean, default: false},
    userid: {type: String, default: 'No name'},

}

您正在重写变量
actimature
。您正在使用新型号设置
成就
,因此需要使用其他名称:

  //somewhere in the code `achievement` is 5
  var achievementUser = new achivementUsers();
  achievementUser.badgeid = achievement;
  return achievementUser.save().then(function (response) {});
或者,可以在创建模型对象时初始化该值。但是,对于不同的上下文使用不同的变量名仍然是一种很好的做法

 //somewhere in the code `achievement` is 5
  var achievement = new achivementUsers({
    badgeid: achievement
  });
  return achievement.save().then(function (response) {});

您正在制作一个带有Achization的圆形对象。badgeid=Achization;这肯定与模式不匹配