Отфильтруйте уровень данных в базе данных с помощью Mon goose, передав параметры JSON - PullRequest
1 голос
/ 21 марта 2020

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

Использование NodeJS с Пн goose!

filter_data(req, res) {
  const sort = {}

  if (req.body.sortBy && req.body.OrderBy) {
    sort[req.body.sortBy] = req.body.OrderBy === 'desc' ? -1 : 1
  }

  ProductModel.find({}, {}, {
    options: sort
  }, (err, ProductModel1) => {
    if (err) {
      console.log(err);
      res.status(500).json({
        "err": err
      });
    } else {
      console.log(ProductModel1);
      if (ProductModel1 == null) {
        res.status(404).json({
          "msg": "Product list is empty"
        });
      } else
        res.status(200).json(ProductModel1);
    }
  });
}

1 Ответ

0 голосов
/ 21 марта 2020

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

filter_data(req, res) {
  const sort = {}

  if (req.body.sortBy && req.body.OrderBy) 
  {
    sort[req.body.sortBy] = req.body.OrderBy === 'desc' ? -1 : 1
  }

  console.log(sort)


  ProductModel.find({}, null, {sort: sort,limit: 2}, (err, ProductModel1) =>{            
    if (err) {
      console.log(err);
      res.status(500).json({
        "err": err
      });
    } else {
      console.log(ProductModel1);
      if (ProductModel1 == null) {
        res.status(404).json({"msg": "Product list is empty"});
      } else
        res.status(200).json(ProductModel1);
    }
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...