Desde mi base de datos MongoDB, estoy consultando datos. Para esto, en mi backend, obtengo los datos de esta manera,
const products = await Product.find({ 'backCamera.sensor.megaPixels': { $gte: 8 } })¿Cómo puedo enviar una solicitud GET desde el front-end para cumplir con esta consulta?
He intentado de esta manera pero no funcionó
fetch('http://localhost:5000/api/v1/products?backCamera.sensor.megaPixels[gte]=8') .then(response => response.json()) .then(data => console.log(data));Luego intenté usar los parámetros de consulta en el backend pero no funcionó.
En primer lugar, no necesita hacer coincidir la consulta de la URL con la consulta en el backend, ni enviarla directamente. Por lo tanto, no necesita una razón para hacer algo como api/v1/products?backCamera.sensor.megaPixels[gte]=8 . En este caso, pasaría algo como api/v1/products?backCamSensorMinPx=8 y luego extraería los datos en el backend de req.query y los validaría. Resolverá algunos problemas de seguridad (en caso de que esté usando SQL) y seguirá algunas buenas prácticas para separar la lógica central del backend y la implementación de la base de datos.
Si desea todo de forma dinámica con la URL, lo que significa que el parámetro backCamera.sensor.megaPixels es dinámico, puede hacerlo así:
// Frontend fetch('http://localhost:5000/api/v1/products?product=backCamera.sensor.megaPixels&minimum=8') .then(response => response.json()) .then(data => console.log(data)); // Backend // Retrieve the params product and minimum from the Url const products = await Product.find({ [product]: { $gte: minimum } })