Как запретить добавление меньшего числа, которое уже существует в mongodb с тем же objectId? - PullRequest
0 голосов
/ 10 мая 2018

Если у меня есть коллекция VoterTurnout, как это:

_id: ObjectId("5ae4e704b7bccf133c24f0b8")
electoralUnit:ObjectId("5ab906612f30fe23dc592591")
turnoutByHour:"08:00"
voterTurnout:11
safeVoter:1
date:2018-04-28T21:26:28.678Z
__v:0

как запретить, чтобы следующий ввод, который был бы в 09 :: 00 в поле turnoutByHour, не мог быть полем voterTurnout с номером меньше 11, но только в том случае, если electoranUnit имеет тот же идентификатор?

Я представил что-то с оператором if вроде:

if (req.body.voterTurnout < VoterTurnouts.findOne({voterTurnout : req.params.voterTurnout }))

но не могу понять, как добавить и отключитьByHour и electoranUnit в этой логике ...?

У меня уже много операторов if с сообщениями об ошибках в маршруте:

router.post('/', (req, res)=>{
    let errors = [];

    if (!req.body.electoralUnit) {
      errors.push({message: 'Must chooose Electoral Unit!'});
    }
    if (!req.body.voterTurnout) {
      errors.push({message: 'Must add Voter Turnout!'});
    }

    if (errors.length > 0) {
      res.render('home/voterTurnouts/index', {
        errors: errors,
        electoralUnit: req.body.electoralUnit,
        voterTurnout: req.body.voterTurnout
      });
    } else {
      VoterTurnout.findOne({_id: req.params.id}).then(voterTurnout=>{
          const newVoterTurnout = VoterTurnout({
            electoralUnit: req.body.electoralUnit,
            turnoutByHour: req.body.turnoutByHour,
            voterTurnout: req.body.voterTurnout,
            safeVoter: req.body.safeVoter
          });
          newVoterTurnout.save().then(savedVoterTurnout=>{
            ElectoralUnit.find({}).then(electoralUnits=>{
              res.redirect('/voterTurnouts');
            });
          }).catch(errors=>{
            req.flash('error_message', 'Hours are already added with that Electoral Unit!');
            res.redirect('/voterTurnouts');
          });
      });
    }
});

так что мне просто нужно добавить это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...