Невозможно выполнить операцию с мангустой при сборе БД с несколькими условиями

Я использую Mongoose для Mongo DB. Я хочу выполнить некоторые операции. Не удалось получить результаты.

У меня есть коллекция пользователей со схемой, как:

{username: 'user1', id: 1, lastName: 'ln1' }
{username: 'user2', id: 0, lastName: 'ln2' }

Идентификатор может быть 0,1,2 или 3

Я хочу ввести новый объект с этими условиями:

  • Если имя пользователя существует, а идентификатор равен 1, обновите данные.
  • Если имя пользователя не существует, то создать новую запись не нужно проверять идентификатор.
  • Если имя пользователя существует, а идентификатор равен 0,2 или 3 (кроме 1), то ничего не делайте (не обновляйте и не вводите пользователя в коллекцию) и сохраните значение, которое этот пользователь не смог ввести в БД.

Пожалуйста помоги.

1 ответ

Решение

Я использовал библиотеку обещаний, но вы также можете использовать обратные вызовы

Предположение: Вы хотите работать на пользовательской модели

 User.findOne({username:"USERNAME"}).exec()
    .then((result)=>{
      if(result){
          if(result.id == 1){
         //update result object and then save it
           result.lastName="abc";
           result.save(); // it will update your result
            }else{
           console.log('failed to enter in the db.')  
           }
        }else{
          User(userObject).save(); // it will create new entry
        }

})
Другие вопросы по тегам