Estoy tratando de mostrar datos específicos de un usuario usando req.session.user y pasar la ID a los criterios que estoy creando. (cada entrada también tiene un campo de usuario para que pueda coincidir) pero no funciona.
El servicio :
async function query(filterBy) { try { const criteria = _buildCriteria(filterBy); const collection = await dbService.getCollection('tab'); const tabs = await collection.find(criteria).toArray(); // const userTabs = await collection.find({ user: '62be030cb4de461a8462b863' }).toArray(); return tabs; } catch (err) { logger.error('Can not find tabs', err); throw err; } }El console.log('userId', userId) devuelve el Id que obtengo de mi controlador
function _buildCriteria(filterBy) { const criteria = {}; const { text, genre, userId } = filterBy; console.log('userId', userId); if (text) { const txtCriteria = { $regex: text, $options: 'i' }; criteria.name = txtCriteria; } if (genre) { criteria.genre = { $eq: genre }; } if (userId) { criteria.user = { $eq: userId }; } return criteria; }El controlador :
async function getTabs(req, res) { try { const userId = req?.session?.user?._id; const filterBy = req.query; const fitlerUpdated = { ...filterBy, id: userId }; const tabs = await tabService.query(fitlerUpdated); res.json(tabs); } catch (err) { logger.error('Failed to get tabs', err); res.status(500).send({ err: 'Failer ti get tabs' }); } }Traté de usar
const userTabs = await collection.find({ user: '62be030cb4de461a8462b863' }).toArray()y funciona pero no funciona junto con los criterios.
¡Gracias por cualquier ayuda!
Me he dado cuenta de que accidentalmente pasé la clave equivocada. debería haber sido id y no userId