当前位置: 首页 > 知识库问答 >
问题:

Mongoose:值“[5ac5cfb41fca8a22f519cb22]”的转换到数组失败

祁烨
2023-03-14

我试图在现有游戏中插入一轮,这会导致以下错误:

游戏验证失败:回合。1.问题:路径“问题”处的值“[5ac5cfb41fca8a22f519cb22]”的转换到数组失败

架构的:

const roundSchema = Schema({
  roundNumber: {
    type: Number,
    required: true,
  },
  categories: {
    type: [String],
    required: true
  },
  questions: {
    type: [Schema.Types.ObjectID],
    ref: 'Question',
    required: true,
  }
});

const gameSchema = Schema({
  code: {
    type: String,
    required: true,
  },
  teams: {
    type: [Schema.Types.ObjectID],
    required: false,
  },
  rounds: [roundSchema]
});

const questionSchema = Schema({
  question: {
    type: String,
    required: true,
  },
  answer: {
    type: String,
    required: true,
  },
  category: {
    type: String,
    required: true,
  }
});

插入函数:

function createRoundForGame(game, round) {
  round.questions = round.questions.map((question) => {
    return mongoose.Types.ObjectId(question);
  });

  console.log(round.questions);
  game.rounds.push(round);

  return game.save()
}

游戏的参数是:

{ 
   teams: [],
   rounds: 
    [ { categories: [Array],
        questions: [],
        _id: 5ac7507c5491ed422de3ce68,
        roundNumber: 1 } ],
   _id: 5ac74cccc65aac3e0c4b6cde,
   code: '537epG',
   __v: 1 
}

参数轮是:

{ 
   roundNumber: 1,
   questions: [ '5ac5cfb41fca8a22f519cb22' ],
   categories: [ 'Art and Literature', 'Music', 'Science and Nature' ] 
}

安慰日志(轮问)结果:

[ 5ac5cfb41fca8a22f519cb22 ]

猫鼬:5.0。12,

我不知道我在这里做错了什么。我会很感激你的帮助。

共有1个答案

皇甫才良
2023-03-14

试试这个...

const roundSchema = Schema({
  roundNumber: {
    type: Number,
    required: true,
  },
  categories: {
    type: [String],
    required: true
  },
  questions: [{type: Schema.Types.ObjectId, ref: 'Question', required: true}]
});
 类似资料:
  • 当我尝试更新DB中的文档时,发生了一些错误。 以下是模式: 然后我从其他地方得到一些产品: 并更新Mu文档。请注意,我为“描述”设置了一个条件:如果它有空值,它将被更新——否则它将保持不变: } Go update(我使用mongoose):产品。updateOne({name:some_product.name},newProduct,{some params}) 我看到: 对于路径“descr

  • 嗨,伙计们,我有一个错误,当我试图发送数组字符串与猫鼬模式其工作正常的标签,而不是selectedFile... 猫鼬模式: controller.js 类型js 对于测试,我将dammy值设置为[“imgar”],并收到以下错误消息:“PostMessage验证失败:selectedFile:在路径“selectedFile”处为值“['imgar']”(键入数组)转换为字符串失败 我能做什么?

  • 尽管这个问题已经被问了很多次,但通常是因为实体没有该字段的有效ObjectId。 我遇到过这样一种情况,即ObjectId被设置为一个可以转换为ObjectId的值,但仍然会出现这个错误。 模式: 伪代码: 此代码的输出为: 但是但是。。。{serviceName:000000000000000001,_id:55079a90286f49280364f78b}{[CastError:在路径“ser

  • 我试图有一个键值对映射到一个数组,区分每个值作为一个类型使用jolt转换规范 输入json 尝试了这个规格

  • 我试图更新数组中的值,我尝试这样做:Mongoose,更新对象数组中的值 但这似乎对我不起作用: myLessonDB返回此项: 我正在尝试按所示的课程ID更改课程中的值,但它不起作用 没有错误或任何看起来在数组中找不到对象的内容 有人知道我做错了什么吗?

  • 我正在调用一个返回有效JSON数据的API。Google可视化图表要求数据绑定到来自JavaScript数组的图表,而不是JSON数组(或数组的数组)。因此,使用我在别处找到的答案,我实现了这一点。 当JSON字符串包含多个项时,它可以很好地工作,但是对于单个JSON(非数组)字符串,一些数据在翻译中会丢失。 守则的主要部分是: 我尝试了多个数据源,但总是缺少一项。的控制台日志显示所有数据。我不知