Ошибка преобразования в objectId при попытке добавить массив objectId в коллекцию - PullRequest
0 голосов
/ 22 апреля 2019

Я настраиваю базу данных, и во время тестирования, с фиктивными данными, массивы ObjectId не сохраняются в базе данных

Я проверил, используя встроенную функцию mongoose, и он возвращал значение true, когда я проверилбыли ли это идентификаторы объектов или нет

схемы выглядят примерно так

const projectSchema = new mongoose.Schema({
  name: String,
  description: String,
  tasks: [{ type: Schema.Types.ObjectId, ref: "Task" }],
  feedBack: String
});

let Project = mongoose.model("Project", projectSchema);

const taskSchema = new mongoose.Schema({
  name: String
});

let Task = mongoose.model("Task", taskSchema);

И я добавляю коллекцию вот так

async function dbLoad() {
  let taskArr = projectDummy.map(project => project.tasks);
  let taskCollection = [].concat(...taskArr).map(task => {
    let t = new Task();
    t.name = task.name;
    return t;
  });

  await Task.insertMany(taskCollection);

  let projectCollection = [];
  for (let project of projectDummy) {
    let taskArr = [];
    for (let task of project.tasks) {
      let data = await Task.findOne({ name: task.name });
      taskArr.push(data["_id"]);
    }
    projectCollection.push(
      new Project({
        name: project.name,
        description: project.description,
        tasks: taskArr
      })
    );
  }

  await Project.insertMany(projectCollection);
}
...