Сортировать json ответ api по алфавиту - PullRequest
1 голос
/ 13 июля 2020

Я пытаюсь получить ответ API в алфавитном порядке. Я попробовал второй ответ из этого вопроса - Сортировать JSON ответ в алфавитном порядке, используя Javascript

Мой javascript код

function OrderListBy(prop) {
  return function (a, b) {
    if (a[prop] > b[prop]) {
      return 1;
    }
    if (a[prop] < b[prop]) {
      return -1;
    }
    return 0;
  };
}

router.get('/countries', async (req, res) => {
  try {
    const countries = await Country.find({}, 'name');
    const sortedCountries = countries.sort(OrderListBy('name'));
    res.send(sortedCountries);
  } catch (e) {
    res.status(500).send();
  }
});

ВЫХОД

[
    {
        "_id": "5f0ccf5f45a1a51ca99382a3",
        "name": "Australia"
    },
    {
        "_id": "5eb6c2e94298400b6eb6ca3c",
        "name": "India"
    },
    {
        "_id": "5ec68ca5325d997b752056cd",
        "name": "china"
    }
]

он должен вернуть Китай раньше Индии по алфавиту. Возвращает страны в порядок, который они создали. Это не работает. Что я делаю не так?

1 Ответ

1 голос
/ 14 июля 2020

Вы можете отсортировать его в самом запросе. Попробуйте это

await Country.find({}, {'name': 1}).sort({name: 1})

Примечание. Внутри сортировки следуйте приведенным ниже значениям в зависимости от требуемого результата.

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