Всем привет. Подскажите бест вей для динамической сортировки списка. Если

сортировать по индексу, то придется обновлять все индексы ниже. Можно конечно сортировать, забыл как называется этот вариант, где добавляются буквы "a", "ab", "abc", "b". Хотел бы узнать, мб у монги есть какое то уже полуготовое решение либо самое подходящее?

5 ответов

9 просмотров

Возможно вы про это спрашиваете: .updateMany({ listIndex: { $gt: 4 } }, { $inc: { listIndex: 1 } })

Mark-Davydkin Автор вопроса
Dmitry Arctic
Возможно вы про это спрашиваете: .updateMany({ lis...

Да, это обновит все нижние индексы, но это считается норм практикой? А если у меня будет миллион документов

Mark Davydkin
Да, это обновит все нижние индексы, но это считает...

Ты же один запрос отправишь, в чём проблема?

Mark Davydkin
Да, это обновит все нижние индексы, но это считает...

Если у тебя несколько млн записей, то использование оператора updateMany может привести к существенной нагрузке. Можно через bulkWrite, только это не лучше вариант т.к. может возникнуть блокировка коллекции. Также не стоит забывать про index т.к. он ускорит процесс выполнения запроса

Мне не известна полная структура вашей коллекции, но для оптимизации сделал бы следующий вариант. Каждый документ знает кто перед ним и кто после него стоит. Когда надо заменить документы местами, например 4 и 8, то в документах 3 5 7 9 меняем id документа. Возможно ещё в качестве защиты от дурака, создал бы индекс, который гарантирует, что ссылка на элемент выше и ниже не дублируется, но тут всё равно зависит от поставленной задачи

Похожие вопросы

Обсуждают сегодня

Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Добрый день. Созданию отношения таблиц для учёта кораблей, их движения между точками (портами) согласно расписания. Терзают сомнения в правильном ли направлении двигаюсь 😅 1...
Aleksey
1
Привет. Наверняка у кого-нибудь здесь есть опыт работы с трекерами (встроенными в OpenCV (KCF) или абстрагированными) на одноплатниках. Если не рассматривать малинку и други...
Georgy Makarov
4
Hi guys Do you know any persian/farsi or english group for opencv?
@. .@
4
А чего при переходе с 2 на 3 все что в билдере сделано тютю?
Денис Александрович
5
Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Приветствую. Подскажите, как можно исправить баланс белого на подобных примерах фото, именно, чтобы брать белый цвет с корпуса теста? А след. шагом будет определение оттенка п...
Volad Malevich
3
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
И всё-таки спрошу насчет такого вариант, сомнительно или нет? (Windows стоять не будет)
Georgy Makarov
5
Приветствую. Есть N видео объектов (фильмы). Часть полной длины просмотра а часть короткие ( обрезаны титры). Задача найти идентичные фильмы. Я не в курсе, есть ли аналог шаз...
Nikolay Chudinov
7
Карта сайта