как сделать запрос, используя конкретное поле вместо идентификатора в экспресс-JS - PullRequest
0 голосов
/ 14 ноября 2018

Ниже приведен мой код для поиска по городам. Я не могу найти в своем сообщении> Мне нужно иметь возможность искать определенный город и получать все записи для поля, соответствующего городу. Например, если город находится в центре города, я хочу получить все записи с городом в центре

            router.get("/search", (req, res, next) =>{
            const city = req.query.city;
            Facility.findAll(city)
                .select('name type mobile price streetName city state _id')
                .exec()
                .then(docs => {
                console.log("From database", docs);
                if (docs) {
                    res.status(200).json({
                        facility: docs
                    });
                } else {
                    res
                    .status(404)
                    .json({ message: "No valid entry found for provided City" });
                }
                })
                .catch(err => {
                console.log(err);
                res.status(500).json({ error: err });
                });

            });

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Вот лучший способ сделать это;

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() сделает работу. Я не вижу необходимости для вас выбирать _id, вы указываете только -_id, если вы этого не хотите, но по умолчанию выбран _id.

Ниже приведен список допустимых запросов в Mongoose, если вы используете это

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()

Проверьте https://mongoosejs.com/docs/queries.html для получения дополнительной информации о запросах

Надеюсь, это поможет

0 голосов
/ 22 ноября 2018

Ниже рабочий код:

router.get('/search', (req, res) => {
const city = req.query.city
    Facility.find({city})
        .select('name type mobile price streetName city state')
            .exec((err, docs) => {
                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({
                    count: docs.length,
                    facility: docs
                });
            })

});

0 голосов
/ 14 ноября 2018

Ты почти у цели.Просто укажите ваш запрос и у вас все будет хорошо

https://mongoosejs.com/docs/api.html#model_Model.find

router.get("/search", (req, res, next) =>{
        const city = req.query.city;
        Facility.findAll({propertyName: city})
            .select('name type mobile price streetName city state _id')
            .exec()
            .then(docs => {
            console.log("From database", docs);
            if (docs) {
                res.status(200).json({
                    facility: docs
                });
            } else {
                res
                .status(404)
                .json({ message: "No valid entry found for provided City" });
            }
            })
            .catch(err => {
            console.log(err);
            res.status(500).json({ error: err });
            });

        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...