Установить атрибут переменной для сортировки в мангусте - PullRequest
0 голосов
/ 19 июня 2020
router.get("/test/:id", async (req, res) => {
  try {
    var data = req.params.id;
    var sortAs= 0;

     if (data.localeCompare("0")) {
       sortAs= "price";
     } else {
       sortAs= "rating";
     }


    let addwises = await Addwise.find()
      .populate("reviews").sort({ sortAs: -1 })
      .exec();
    res.json({
      success: true,
      addwises: addwises,
    });
  } catch (err) {
    res.status(500).json({
      success: false,
      message: err.message,
    });
  }
});

Привет, ребята, это мой код, но у меня проблема с функцией sortAs в .sort (). Он вообще не обнаруживает эту переменную. Что я могу сделать, чтобы он стал переменным. Если я поставлю «цену» или «рейтинг», он будет работать, но в остальном он не сортируется должным образом.

1 Ответ

0 голосов
/ 19 июня 2020

использовать синтаксис ES6:

router.get("/test/:id", async (req, res) => {
  try {
    var data = req.params.id;
    var sortAs= 0;

     if (data.localeCompare("0")) {
       sortAs= "price";
     } else {
       sortAs= "rating";
     }


    let addwises = await Addwise.find()
      .populate("reviews").sort({ [sortAs]: -1 })
      .exec();
    res.json({
      success: true,
      addwises: addwises,
    });
  } catch (err) {
    res.status(500).json({
      success: false,
      message: err.message,
    });
  }
});

или передать объект

router.get("/test/:id", async (req, res) => {
  try {
    var data = req.params.id;
    var sortAs= {};

     if (data.localeCompare("0")) {
       sortAs["price"] =-1;
     } else {
       sortAs["rating"] = -1;
     }


    let addwises = await Addwise.find()
      .populate("reviews").sort(sortAs)
      .exec();
    res.json({
      success: true,
      addwises: addwises,
    });
  } catch (err) {
    res.status(500).json({
      success: false,
      message: err.message,
    });
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...