如果我有这样的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是相同的id时才会出现?
我使用if语句对事物进行了成像:
if (req.body.voterTurnout < VoterTurnouts.findOne({voterTurnout : req.params.voterTurnout }))
但无法弄清楚如何在该逻辑中添加和turnoutByHour和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');
});
});
}
});
所以我只需要添加这个......