Невозможно выполнить операцию с мангустой при сборе БД с несколькими условиями
Я использую 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
}
})