как сортировать имена по номерам с помощью mongoose?

#mongoose

#mongoose

Вопрос:

Я использую mongoose, хочу отсортировать имя, но оно идет не так

имена здесь такие: A1, A2, A3,A11, A12,A13,B1, B2, B3, B10, B11

моя строка

 this.find(condition).collation({ locale: "en"}).sort({name: 1}).skip(offset).limit(limit)
  

чего я ожидаю:

 A1,A2,A3,A11,A12,A13,B1,B2,B3,B10,B11
  

что я получил:

 A1,A11,A12,A13,A2,A3,B1,B10,B11,B2,B3
  

итак, вопрос очень ясен … Как мне сделать, чтобы все было правильно, ребята!

Ответ №1:

Прямо сейчас похоже, что сортировка выполняется по строкам, а в строках учитывается только первая цифра, затем вторая. Это, очевидно, не то, что вы хотите. Единственный способ сортировки по номерам — это сортировать их вручную с помощью Vanilla JS.

Комментарии:

1. Я не уверен, как, вы можете объяснить больше?

2. Таким образом, по сути, вы удаляете часть сортировки из своего запроса mongoose, что даст вам массив документов, с которыми вы можете выполнять операции. Затем вы можете делать что угодно с помощью Vanilla JS

3. последняя часть запроса предназначена для разбивки на страницы, используйте данные, которые запрос вернул для сортировки, будет иметь неправильную сортировку…