I want to sort a mongo collection on base of following query in URL string from a node application. http://localhost:5000/v1/bid/sort_bid?sort={"_id": -1,"enquiry_no": 1} how do I pass an object in following code? const getSortedBidList = catchAsync(async (req, res) => { let { sort } = req?.query; console.log('Query String', sort); let object = new Object(); object[sort] === 1 ? 'ASC' : 'DESC'; let result = await Bid .find({}) .sort(object) .limit(limit) .skip(offset);} En el método de clasificación, paso el objeto de la cadena de consulta, pero no funcionó. Por favor ayuda a resolver esto. Gracias
Prueba lo siguiente:
http://localhost:5000/v1/bid/sort_bid?sort[_id]=-1&sort[enquiry_no]=1Obtenga más información sobre cómo express analiza las cadenas de consulta desde aquí .
Le recomiendo que use el paquete npm qs para analizar los objetos en su interfaz en cadenas de consulta programáticamente:
import qs from 'qs'; async function sendRequestToBackend(queryAsObject) { const stringifiedQuery = qs.stringify(queryAsObject); await sendRequest(`http://localhost:5000/v1/bid/sort_bid?${stringifiedQuery}`) }