фоновая задача mongodb

If possible, i'd like to run a find & remove query on non-indexed columns in "background", without disturbing other tasks or exhausting memory to the detriment of others.

Для индексирования есть флаг фона. Можно ли добавить приложение для поиска/удаления?

Спасибо за подсказку

5
nl ja de
Не насколько я знаю и что вы подразумеваете под удалением неиндексированных столбцов? Означает ли это, что вы не удаляете всю строку, а вместо этого используете оператор in-memory для удаления столбцов? Также неиндексированные столбцы следует удалить как qwuick как индексированные, при условии, что find для удаления использует индекс.
добавлено автор Sammaye, источник
А теперь я вижу, извините, что не знаю. Я думал об использовании реплик как о способе выполнения приоритета, но это не сработало бы из-за реализации репликации в MongoDB
добавлено автор Sammaye, источник
Я собираюсь найти неиндексное поле, например. .find ({i_am_not_indexed: "target"}) и полностью удалите соответствующие документы. это занимает несколько минут. это было нормально, потому что это не срочная задача, но она замедляет другие задачи манго. вот почему я ищу что-то вроде фона: правда ..
добавлено автор ledy, источник

2 ответы

Это не то, что вы можете использовать для «background: true» for. Возможно, лучший способ справиться с этим - написать сценарий, который делает это в фоновом режиме. Этот скрипт должен запускать вашу операцию небольшими партиями с некоторой задержкой между ними. В псевдокоде вы бы сделали:

  • найдите 10 документов, которые необходимо обновить.
  • обновите эти 10 документов
  • сон
  • перейти к первому шагу.

Вам придется поэкспериментировать с тем, какое значение для сна работает. Вам нужно понять, что все документы, которые вы обновляете, нужно вытащить в память, так что это будет иметь хоть какое-то влияние.

2
добавлено

Нет, нет фона: true для этой операции. Устранение приведет к сбоям страницы и позволит выполнять другие операции. Если вам нужно активировать дроссельную заслонку, вы можете либо удалить их меньшими партиями, либо использовать шаблон поиска/удаления, который снизит воздействие на другие операции.

2
добавлено
То же самое происходит с .find (без удаления). также нет обходного пути для этой низкоприоритетной задачи?
добавлено автор ledy, источник
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MongoDB Russian
MongoDB Russian
1 086 участник(ов)

> db.stats() https://combot.org/chat/-1001035023078