Tengo la siguiente colección de apuestas de MongoDB:
{ id: String, user_id: String, type: String, events: [{ eventID: String, sport: String, evento: String, aposta: String, estado: String, odd: String }], total_odd: String, bet_ammount: String, state: String, date: String }Mi objetivo es enviar una solicitud HTTP a /bet y responder con todas las apuestas en mi base de datos que correspondan al "user_id" dado que se envió en la solicitud inicial.
Por ejemplo, si hubiera 3 apuestas que tuvieran el ID de usuario con "61e0eb548714ee662c2d76d1", me gustaría enviar las 3 apuestas en el cuerpo de la respuesta. Recibí una solicitud similar en la que solo necesitaba enviar una apuesta específica de acuerdo con su ID. El código para eso es el siguiente:
router.get('/bet', (req, res, next) => { let token = req.headers.token; jwt.verify(token, 'secretkey', (error, decoded) =>{ if (error) return res.status(401).json({ title: 'Unauthorized' }) BetModel.findOne({ user_id: decoded.userId }, (error, bet) => { if (error) return console.log(error) return res.status(200).json({ title: 'Bets Grabbed', bet:{ _id: bet._id, events: bet.events, total_odd: bet.total_odd, bet_amount: bet.bet_amount, state: bet.state, date: bet.date, user_id: bet.user_id } }) }) }) });¿Cómo podría cambiar esto para obtener inicialmente todas las apuestas para ese user_id específico y luego enviarlas todas en la respuesta HTTP?
Puede crear otra ruta que cambie la consulta findOne a find y envíe el resultado a la respuesta HTTP.
BetModel.find({ user_id: decoded.userId }, (error, bets) => { if (error) return console.log(error) return res.status(200).json({ title: 'Bets Grabbed', bets: bets }) })Luego podría iterar a través de cada una de las apuestas en la interfaz.