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

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

5 ответов

26 просмотров

Возможно вы про это спрашиваете: .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 документа. Возможно ещё в качестве защиты от дурака, создал бы индекс, который гарантирует, что ссылка на элемент выше и ниже не дублируется, но тут всё равно зависит от поставленной задачи

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
кто-нибудь уже пробовал это?
Lencore
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
❓ Подскажите как сделать в группе телеги функцию (кнопку) пересылки сообщения где есть нарушение правил? Бот к каждому сообщению (по определенным ключам) добавляет снизу кнопк...
Alexander
4
Карта сайта