mike
python
тебе 10?
Hominini_Inside
Не удается удалить поля вложенных объектов. В чем я не прав, когда прошу монгу об этом?
Алина
Не удается удалить поля вложенных объектов. В чем я не прав, когда прошу монгу об этом?
в синтаксисе у удаляемого поля указывается : 1, это типа вместо true
Алина
"parts.summary":1
Hominini_Inside
"parts.summary":1
не возымело эффекта
Albert
тебе 10?
const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const const
Albert
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
Алина
не возымело эффекта
оч странно, попробовала с updateMany и updateOne, все получилось 🤔
Hominini_Inside
оч странно, попробовала с updateMany и updateOne, все получилось 🤔
я даже перезаписать значение поля этих вложенных объектов не могу
Hominini_Inside
то, что это массив как то влияет?
Hominini_Inside
нет, не должно
Вообще не работает ))
Алина
Вообще не работает ))
так, а почему вставка идет в коллекцию hello, а удаление - из item?
Hominini_Inside
и даже такое не работает
Hominini_Inside
так, а почему вставка идет в коллекцию hello, а удаление - из item?
сорян, конкретно в этом случае запарился
Hominini_Inside
ну а в первоначальном - действительно не работает
Алина
сорян, конкретно в этом случае запарился
ага, но если попробовать из hello удалить, тоже никак?
Hominini_Inside
ага, но если попробовать из hello удалить, тоже никак?
плоское удаляется, ща попробую вложенное
Алина
а на item никаких индексов нету на parts? с индексами не знаю, как работает. по идее не должно мешать, но мало ли
Hominini_Inside
хелло норм удалилось
Hominini_Inside
не, на партс нет индексов
Алина
или щас пальцем в потолок - может на item какие-то права доступа специфичные?
Алина
просто инфу отбирает, но не меняет, странно как-то
Hominini_Inside
там вообще нет никаких разграничений
Hominini_Inside
единственный нюанс - огромные документы с глубокой иерархией и массивами
Mike
Такой вопрос. А сложную аналитику вообще возможно базой(монгой) делать или она для этого не предназначена?
Mike
например выдернуть часть данных из базы проанализировать - затем положить в новую и снова по циклу дальше проходиться - в старой базе и ложить ее части проанализированные в новую
Mike
(и так пока вся старая база не будет проанализирована)
Роман
народ, привет подскажите, пожалуйста, как вывести все документы из коллекции? на find() почему-то выдает Type "it" for more
Роман
спасибо!
Shu
Добрый вечер! Не подскажите в такой ситуации. Реплики. Если подключена PRIMARY, то SECONDARY отваливается, то наоборот?
Mike
Есть коллекция в базе - следующего вида: В ней находится несколько миллионов документов. (с полностью идентичной структурой) Вопрос: Можно ли с помощью только лишь агрегации(или методов базы - без ЯП) решить следующую задачу? : 1) Проитерироваться по каждым 5-ти элементам из этой многомилионной коллекции (начать с первых 5-ти) 2) сделать выборку из этих 5-ти елементов таким образов что бы на выходе получился 1 документ получишвший выжимку из вышеуказанных 5-ти 3) отправить эту выжимку в новую коллекцию 4) начать следующую итерацию из 5-ти елементов(тоесть повторить предыдущий весь алгоритм) - и так пока вся коллекция не будет профильтрована.
Mike
Пишите скрипт
вы имеете ввиду обычный js скрипт или какой то скрипт монги?
Mike
Монга на жс и работает)
это понятно но я думаю вы поняли вопрос имел ввиду скрипт на языке бекенда или на языке самой технологии монги
Mike
(тоесть ее методами)
Vladyslav
это понятно но я думаю вы поняли вопрос имел ввиду скрипт на языке бекенда или на языке самой технологии монги
Скрипт - я имею ввиду просто как файлик или кусок кода, который не будет на вашем беке. А в этом файле вы можете юзать как и операторы монго, так и обычный жс код
Mike
обычный жс код
Mike
Что обычный?
тоесть я просто брал жссом дергал данные из базы эти 5 - елементов - делал из них 1 и отправлял в новую коллекцию.
Mike
это все заняло минут 8
Mike
мне надо как то ускорить все в 1000 раз желательно или больше )
Vladyslav
обычный жс код
Я в самом начале кинул, какие операторы вам нужны для работы
Vladyslav
Если вы просто читали фулл бд и не использовали ничего, выше перечисленного, то великом почитать доки) а также о работе с большими объёмами данных, техники, которые не зависят от sql/nosql
Mike
1) skip, take, limit 2) aggregate 3) тут вам понадобится язык уже или просто жс скрипт(если разово) 4) 1 пункт
на счет 3-го пункта не совсем понял - вроде же есть какой то stage-метод - который заносит в коллекцию полученные данные
Mike
Мб, в документации, можно все найти)
но какого то аналога цикла не существует получается в методах базы - я правильно понял? допустим положить можно полученные данные но запустить из монги прямо новую итерацию не получится - правильно?
Mike
Если уж так хотите, то зачем вам цикл? Ложите весь свой aggregate response в другую коллекцию. Смысл от цикла тут?
ну смысл в том что я же положу только отфильтрованные первые 5 документов из базы - а мне же надо остальную часть из базы дофильтровать
Mike
тоесть фильтровать я могу только по 5 документов а у меня их миллионы
Mike
как тут без цикла то?
Vladyslav
ну смысл в том что я же положу только отфильтрованные первые 5 документов из базы - а мне же надо остальную часть из базы дофильтровать
https://stackoverflow.com/questions/31231872/mongodb-lists-get-every-nth-item Мб Вам нужно что то из этого рода или подобное погуглить. Либо просто вы неправильно поставили задачу
Vladyslav
Также вам нужно прочесть про обработку батчами - это решит вашу проблему тоже
Mike
https://stackoverflow.com/questions/31231872/mongodb-lists-get-every-nth-item Мб Вам нужно что то из этого рода или подобное погуглить. Либо просто вы неправильно поставили задачу
задача правильная есть минутный таймфрейм мне его надо переделать в 5-ти минутный для этого берем и анализирует каждую минуту и делаем исходя из этого анализа - 5-ти минутку
Viktar
единственный нюанс - огромные документы с глубокой иерархией и массивами
Если вы хотите ансетнуть что то из массива, то вам надо указать индекс элемента в этом массиве.
Vladyslav
уже сделано батчем все
Тогда в чем проблема?
Mike
Тогда в чем проблема?
в том что как я выше описал я делал батчем но не использовал агрегацию
Vladyslav
в том что как я выше описал я делал батчем но не использовал агрегацию
Какой батчсайз, сколько батчей и сколько рекордов в бд?
Mike
Какой батчсайз, сколько батчей и сколько рекордов в бд?
какой батч сайз я не мерял - но я пробовал ложить по 1-му елементу и по 1000 и по 10 000 - там разница во времяни 20 сек не больше
Mike
итоговое время 8 минут
Vladyslav
какой батч сайз я не мерял - но я пробовал ложить по 1-му елементу и по 1000 и по 10 000 - там разница во времяни 20 сек не больше
Как можно "не мерять" батч сайз, если вы его и задаёте. После этих слов вывод прост- ни фига у вас нету обработки батчами
Mike
Как можно "не мерять" батч сайз, если вы его и задаёте. После этих слов вывод прост- ни фига у вас нету обработки батчами
я не знаю что значит его мерять - а что это могло бы изменить допустим если я его померял?
Mike
если кол-во елементов не играет существенно на время
Vladyslav
Mike
мне наобходимо увеличить время не на 20 сек а в сотни раз (если это возможно)
Mike
Прочтите что такое батчи и не задавайте глупых вопросов
http://joxi.ru/ZrJBJPYTQYERjr это можно было сделать не читая?
Vladyslav
http://joxi.ru/ZrJBJPYTQYERjr это можно было сделать не читая?
У вас нету обработки батчей, то что вы создали переменную bulk, ничего не даёт
Mike
и процессорная нагрузка и память снизилась значительно в разы
Mike
до этого было время 14 минут