I am trying to insert a round into an existing game, which gives me the following error:
Failed to check files: rounds.1.questions: reset using the array the value "[5ac5cfb41fca8a22f519cb22]" along the path "questions"
Scheme:
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,
}
});
Insert function:
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()
}
Game Parameter:
{
teams: [],
rounds:
[ { categories: [Array],
questions: [],
_id: 5ac7507c5491ed422de3ce68,
roundNumber: 1 } ],
_id: 5ac74cccc65aac3e0c4b6cde,
code: '537epG',
__v: 1
}
Round parameter:
{
roundNumber: 1,
questions: [ '5ac5cfb41fca8a22f519cb22' ],
categories: [ 'Art and Literature', 'Music', 'Science and Nature' ]
}
The result of console.log (round.questions):
[ 5ac5cfb41fca8a22f519cb22 ]
mongoose: 5.0.12,
I have no idea what I'm doing wrong here. And I would be happy to help here.