#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. последняя часть запроса предназначена для разбивки на страницы, используйте данные, которые запрос вернул для сортировки, будет иметь неправильную сортировку…