基本上,我有两个具有一对多关系的集合问题和答案,我正在尝试填充这些相关集合的数据。
一旦问题被保存,我将尝试保存与该问题相关的多个答案。 这是我编写的用于添加多个答案的代码(其中答案是内部包含对象的数组)。
let question = await Question.findOne({_id: question_id});
//Here answer is a array containing objects
answers.forEach(async function (answer, i) {
let newAnswer = new Answer({
question: question._id,
answers: answer.ans,
});
await newAnswer.save();
await question.answers.push(newAnswer);
await question.save();
});
但是此代码仅保存对问题集合的一个引用并引发错误
“无法同时多次保存()同一文档。文档:5bf7cb66f4f14a5bb6a2bf6c {“ name”:“ ParallelSaveError”}“
请帮助我找出解决此问题的正确方法。
这是模型
const questionSchema = mongoose.Schema({
question: {
type: String,
required: true,
unique: true
},
answers: [{type: mongoose.Schema.ObjectId, ref: 'Answer'}]
});
const answerSchema = mongoose.Schema({
question: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Question'
},
answers: {
type: String,
required: true
}
});