sql >> Base de Datos >  >> NoSQL >> MongoDB

cómo consultar usando un campo específico en lugar de id en express js

Aquí hay una mejor manera de hacerlo;

router.get('/search', (req, res) => {
  const {city} = req.query
  Facility.find({city})
    .select('name type mobile price streetName city state')
    .exec((err, doc) => {
      if (err) {
        return res.status(500)
          .json({ message: 'error querying cities', error: err });
      }
      if (!docs) {
        return res.status(404)
          .json({ message: 'No valid entry found for provided City' });
      }
      return res.status(200)
        .json({
          facility: docs
        });
    })
})

find() hará el trabajo. No veo la necesidad de que selecciones _id , solo especificas con -_id si no lo quieres pero _id está seleccionado de forma predeterminada.

A continuación hay una lista de consultas válidas en Mongoose si eso es lo que está usando

Model.deleteMany()
Model.deleteOne()
Model.find()
Model.findById()
Model.findByIdAndDelete()
Model.findByIdAndRemove()
Model.findByIdAndUpdate()
Model.findOne()
Model.findOneAndDelete()
Model.findOneAndRemove()
Model.findOneAndUpdate()
Model.replaceOne()
Model.updateMany()
Model.updateOne()

Compruebe https://mongoosejs.com/docs/queries.html para más información sobre consultas

Espero que esto ayude