Евгений
Данных в монге много? Индекс по полю friends и _at есть?
Поле friends - массив. Индексы есть. Данных - десятки миллионов записей.
Ilya
Подозрение, что монга не по индексу идет а шерстит всю коллекцию. Попробуйте посмотреть эксплейн запроса
Евгений
Подозрение, что монга не по индексу идет а шерстит всю коллекцию. Попробуйте посмотреть эксплейн запроса
Если бы так было, ВСЕ запросы вели бы себя одинаково. Ну и ошибка не та. Когда времени на выполнение не хватает - ошибка другая.
04MTTM07
Если бы так было, ВСЕ запросы вели бы себя одинаково. Ну и ошибка не та. Когда времени на выполнение не хватает - ошибка другая.
Подключение к монге через сокет? Попробуйте через tcp проверить. Где-то читал, что с сокетами бывают плавающие ошибки, при работе с большим кол-вом записей монги.
Anton
Ребзя посоветуйте best practice для следующего: В коллекции доков у каждого дока есть массив. Каждый элемент массива должен быть добавлен в новую коллекцию
Anton
Транзакция
Жалко, ну ладно
Vjačeslavs
Доброй ночи. Насколько небезопасно использовать Atlas без вайтлиста? Хочу подключиться с GCP, но там нет статиков
Максим
Доброй ночи. Насколько небезопасно использовать Atlas без вайтлиста? Хочу подключиться с GCP, но там нет статиков
В учебных целях у меня там несколько кластеров, все с паролями, почти все торчат в инет. Несколько месяцев. Пока всё хорошо. Для сравнения — оставил монгу без пароля на сервере, открытую наружу. Прошли сутки и базу зашифровали.
Viktar
Всем привет, подскажите в монге есть index seek? или только индекс скан?
Viktar
В релчционках есть операции Сик и скан. Сик более быстрый.
yopp
А в чем разница этих механизмов?
Dr
https://dba.stackexchange.com/questions/177670/is-mongodb-ixscan-operator-a-scan-or-a-seek/177680#177680
yopp
WT это KV хранилище, там вообщем-то два варианта поиска по ключам get и range get
yopp
Первый это по полному совпадению, второй по префиксу
yopp
А что значит seek и scan о которых сейчас говорят я не не очень понимаю
Art
Привет. Подскажите как получить последние 10 элементов из коллекции? Знаю что limit можно поставить а вот как указать что элементы должны быть с конца последние?
Art
Сортировкой?
Хз.но спасибо. Надеюсь есть варинты лучше
yopp
у коллекций нет порядка
yopp
порядок можно обеспечить только явно выбрав поле для сортировки
#my
здравствуйте мне нужна бесплатная программа для подключения к базе данных Mlab похоже на Studio3T
Максим
ordered: false
Viktar
А что значит seek и scan о которых сейчас говорят я не не очень понимаю
Сори за задержку. Остался без интернета. Разница в реляционках в том, что в первом случае сканируется весь индекс(скан), а в сике переходит сразу к значению. Например если надо поле модель которое находится в индексе то значение возьмётся из индекса, и не будет обращения с самим данным
Viktar
Вы ищите covered query https://docs.mongodb.com/manual/core/query-optimization/#covered-query
не совсем то. наверное я плохо объяснил. но круто если есть в монге каверед индексы. под мою задачу подойдёт
yopp
> Например если надо поле модель которое находится в индексе то значение возьмётся из индекса, и не будет обращения с самим данным это ровно то, как работает covered query
Viktar
https://blog.sqlauthority.com/2007/03/30/sql-server-index-seek-vs-index-scan-table-scan/
Viktar
WT ?
yopp
если у вас $eq условие по индексируемому не multikey полю, то это 1 get
yopp
wiredtiger, это storage engine по умолчанию с 3.2
Viktar
у меня два запроса с иквел и ин
yopp
$in это синтаксический сахар над $eq .. $or .. $eq .. $or ..
yopp
расскажите о своей проблеме
Viktar
ага, я в эксплейн заметил
Viktar
у меня много данных. и когда я их начинаю процессить монга загибается по ио. появляются большие иовейты
Viktar
вот и хочу оптимизировать индексами
yopp
много данных, это какие порядки? по io забивается из-за collscan?
Viktar
203845058/419GB
Viktar
порядка 203 млн записей
Viktar
каждую запись надо отпроцессить
Viktar
по принципу... например имя фамили, надо найти всех с такими же именами и фамилией, и добавить к записи. причем имя может быть разными... Женя - Евгений
yopp
а сколько у вас таких измерений?
yopp
у вас достаточно большие документы, 2кб
Viktar
Да
yopp
если сейчас они не проиндексированы, то да, индексы помогут
yopp
но тут есть ньюанс
yopp
если у вас 5% Жень и вы хотите все 5% выбрать, то вам это не сильно поможет
Viktar
проиндексировано. но я хочу добавить в индекс недостающие поля(около 20 штук)
Viktar
нет. мне надо всего 15 записей
Denis
проиндексировано. но я хочу добавить в индекс недостающие поля(около 20 штук)
Если будешь добавлять как single индексы будет не быстро работать. Сам столкнулся Оно возьмет какой то из single индексов и сделает по нему fetch, что логично, но не супер быстро Если у тебя query всегда одинаковый то лучше compound индекс сделать
Viktar
имя -фамилия - регион - город
yopp
нет. мне надо всего 15 записей
покажите пожалуйста пример запроса с explain(executionStats)
Viktar
покажите пожалуйста пример запроса с explain(executionStats)
я вам в лс скину. большой json получается
Alexandr
Подскажите пожалуйста, как лучше построить индексы, есть например документы типа {a: value, b: value, c: value, d: value} на сайте будет фильтр, отфильтровать можно будет во всех вариациях, например только по a, только по b, по a и b, по a, b, c, по c, d, a и т.д., мне нужно на каждую вариацию прописать compound индекс, а так же обычные индексы на каждое поле? Или есть какой-то другой путь?
Sardor
И поиск по префиксам в помощь
no
привет. подскажите, почему $eq не работает, а $ne работает?
Максим
привет. подскажите, почему $eq не работает, а $ne работает?
Так они же для поиска вроде, а ты их вставить пытаешься.
Nick
привет. подскажите, почему $eq не работает, а $ne работает?
используйте $elemMatch https://docs.mongodb.com/manual/reference/operator/update/pull/
Максим
Ребята, подскажите есть ли такая возможность выбрать случайные документы? Просят типа сделать файнд 100 случайных доков.
Nick
только если доков много, то получите проблемы с рпоизводительностью
Nick
очень внимательно рочитайте как работает
Denis
Одного compound index будет достаточно
Почему? Я считаю что нужно сделать single по всем полям участвующим в поиске
no
используйте $elemMatch https://docs.mongodb.com/manual/reference/operator/update/pull/
я ведь в $pull пытаюсь проверить на равенство. читаю доку, тут говорится, что $elemMatch в $pull не нужен
Nick
я ведь в $pull пытаюсь проверить на равенство. читаю доку, тут говорится, что $elemMatch в $pull не нужен
всетаки недостаточно увидеть пример, надо бы всетаки почитать о чем пример. Спасибо что поправили. А там написано что вообщеи ничего юзать не надо $pull: { a:123}