Как создать новую запись в MongoDB, если она не существует?

#node.js #mongodb #mongoose

Вопрос:

Я работаю на веб-сайте, где пользователь может добавлять данные об авариях за определенный год. Я хочу, чтобы, если пользователь попытается добавить данные за новый год, которых нет в базе данных, код должен создать новую запись за этот год. Это сжатая форма схемы, которую я использую

 const yearSchema = new mongoose.Schema({  year: Number,  sheet1: {  f_jan_acc: Number,  gi_jan_acc: Number,  mi_jan_acc: Number,  ni_jan_acc: Number,  tot_jan_acc: Number,}  })  

Предположим, что запись на 2021 год существует, но не существует на 2022 год. Теперь , если пользователь попытается добавить данные за 2022 год, код должен создать новую запись за 2022 год. Это то, что я пытался сделать до сих пор:

 Year.find({ year: 2022 } , function(err ,found){  if(err){  console.log(err)  }  else{  if(found){  console.log(found)  }  else{  const newYear = new Year({  year : 2022,  })  newYear.save()  }  }  });  

Что еще я могу попробовать или, возможно, даже улучшить в этом? Спасибо за помощь

Комментарии:

1. Я пытаюсь найти пример, но шаблон называется «upsert» (обновление, если вы не можете вставить). Или вы хотите, чтобы ничего не случилось, если оно существует?

2. @zero298 «обновите, если вы не можете вставить» — хотя все наоборот. 🙂 «обновите запись. Если не найдено, вставьте один»

3. @zero298 мой код работал с несколькими корректировками

4. Спасибо за помощь 🙂