Estoy aprendiendo Express.js. Estoy tratando de ordenar estos servicios por precio. Todos los servicios están dentro de una matriz. En primer lugar, estoy filtrando los artículos por su nombre, lo que funciona bien, pero cuando trato de ordenarlos por su precio, no funciona. Aquí está mi código para ordenar:
const getCategory = async (req, res) => { let query; const reqQuery = { ...req.query }; console.log(req.query); if (req.query.name) { query = Category.find(reqQuery); } else { query = Category.find(); } if (req.query.sort) { const sortByArr = req.query.sort.split(',').join(' '); query = query.sort(sortByArr); } try { const categories = await query.populate('services'); res.status(200).json({ message: 'All Category', result: categories, }); } catch (error) { res.status(500).json({ message: error.message }); } }; Aquí está la captura de pantalla de mi consulta en cartero:
El precio más alto es 225000 . Así que la clasificación no está funcionando aquí.
Las matrices se ordenan por valores alfabéticos de forma predeterminada. Usa esto en su lugar:
arr.sort((a, b) => ab);