Estoy tratando de desarrollar un sitio web bancario donde los usuarios puedan solicitar un préstamo. Un solo usuario puede solicitar múltiples tipos de préstamos. Antes de que un usuario solicite un préstamo con éxito, verifico si el usuario existe o no, luego verifico todos los préstamos que el usuario ha solicitado. Si el usuario ya ha solicitado el mismo tipo de préstamo, no podrá volver a solicitarlo.
Por ejemplo, si un usuario ya ha solicitado un préstamo hipotecario, no podrá volver a solicitar un préstamo hipotecario.
Aquí está mi esquema de usuario:
const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ email:{ type:String, required:true, unique:true }, password:{ type:String, required:true, }, isAdmin:{ type:Boolean, required:true }, account:{ type:mongoose.Schema.Types.ObjectId, ref:'Account', required:false }, transactions:{ type:mongoose.Schema.Types.ObjectId, ref:'Transaction' }, loans:[ { type:mongoose.Schema.Types.ObjectId, ref:'Loan' } ] },{ timestamps:true }); const User = mongoose.model('User',userSchema); module.exports = User;Aquí está el esquema de préstamo
const mongoose = require('mongoose'); const loanSchema = new mongoose.Schema({ user:{ type:mongoose.Schema.Types.ObjectId, ref:'User', required:true }, amount:{ type:Number, required:true, }, account:{ type:mongoose.Schema.Types.ObjectId, ref:'Account', required:true }, loantype:{ type:String, required:true } },{ timestamps:true }); const Loan = mongoose.model('Loan',loanSchema); module.exports = Loan;Esto es lo que he intentado hacer:
module.exports.apply = async function(req,res){ try{ let user = await User.findById(req.body.user) .populate('account') .populate({ path:'loans', populate:{ path:'loantype' } }); let loan = await user.loans.find({loantype:req.body.loantype}); if(loan){ req.flash('error','Not Allowed'); return res.redirect('back'); } req.flash('success','Applied Successfully'); return res.redirect('back'); }catch(err){ console.log('Error',err); return res.redirect('back'); } }Pero esto no está funcionando. Cualquier ayuda será muy apreciada. Gracias !