У меня есть следующий сегмент кода
// Insert Question Archive into the DB (only at first execution needed)
await QuestionArchive.insertMany(questionData.questionPool);
// Get 20 random questions out of the existing Question Archive Collection and assign Room Number
let selectedQuestions = await QuestionArchive.aggregate( [ { $sample: { size: 20 } } ]);
selectedQuestions.forEach(question => {
// At this point i should assure that selectedQuestions have NO _id so this gets newly generated
question.room = req.body.room.title;
});
// Insert the random questions into the Question Collection
Question.insertMany(selectedQuestions).then(inserted => {
res.status(201).json({
message: 'New Room created!',
result: newRoom
});
}).catch(error => {
console.error('Post CreateRoom - Question insertion error: ' + error);
На самом деле при первом запуске программы массив вопросов (QuestionPool) загружается в мою коллекцию QuestionArchive. Из архива вопросов я беру 20 случайных вопросов и сохраняю их отдельно в коллекцию вопросов! Теперь сначала попробуйте, все работает просто отлично! Как только я запускаю этот код во второй раз, я получаю ОШИБКУ, потому что некоторые из 20 вставленных случайных Вопросов уже находятся в Сборнике Вопросов с первого запуска. Что мне действительно нужно сделать, так это всегда назначать другой «_id» при вставке вопроса из QuestionArchive ==> Вопрос! Поэтому не нужно идентифицировать ДВОЙНЫЕ наборы данных! Как это может быть сделано?
Любая помощь очень важна!