Co(n)stantine👨‍🔬
😳👍
Ivan
Почему not recommended?
Либо использование с опцией --oplog, где такие есть
yopp
Stable: 4.0.2 (Aug 29, 2018) Bugfix: 3.6.8 (Sep 19, 2018), Legacy: 3.4.17 (Sep 7, 2018) MongoDB quick overview/production notes: https://www.percona.com/live/e17/sites/default/files/slides/Running%20MongoDB%20in%20Production%20-%20FileId%20-%20115299.pdf 4.0.2: https://docs.mongodb.com/manual/release-notes/4.0/#aug-29-2018 3.6.8: https://docs.mongodb.com/manual/release-notes/3.6/#sep-19-2018 3.4.17: https://docs.mongodb.com/manual/release-notes/3.4/#sep-7-2018 End of life: 3.2.21 (Sep 2018 / Sep 2018), 3.0.15 (May 2015 / Feb 2018)
Dmitry
🎉
Ivan
Я вас совершенно не понимаю
вот, рекомендация юзать альтернативные методы
yopp
вы внимательно прочитайте
Ivan
if the..? Я пока не знаю, пострадает или нет +)
Oleg
вот, рекомендация юзать альтернативные методы
Тут говорится о просадке производительности при дампе, если для бизнеса недопустимо то альтернативы
Vladislav
Здравствуйте. Стало интересно что из себя представляет mongodb. Может кто подкинуть хороший туториал?
SvPupok
документация на официальном сайте просто мегаподробна
Vladislav
Понял. Спасибо)
Екатерина
Как в монге написать мигрейшн, чтобы у всех ранее существующих юзеров ставилось дефолтное проперти? Сейчас оно undefined. И как ее потом запускать?
yopp
в монге нет схем и нет миграций
yopp
если вы хотите добавить поле с каким-то значением, в документы в которых этого поля нет, то используйте updateMany с условием по $exists. Если поле есть, но его значение null и undefined (он вроде deprecatated), то используйте $eq
Екатерина
github.com/balmasi/migrate-mongoose
yopp
это изобретение монгуса, оно никакого отношения к вашему оригниальному вопросу «как в монге написать мигрейшен» не имеет
yopp
в монге — никак
Екатерина
На сервере есть свойство isDeactivated. Недавно добавила. Так вот, нужно сделать миграцию чтобы у уже существующих юзеров установилось дефолтное проперти isDeactivated = false
yopp
вероятно в монгусе есть возможность сделать фоллбэк до дефлотного значения, но вам тут с монгусом маловероятно что помогут. у вас больше шансов в канале про js
Nick
На сервере есть свойство isDeactivated. Недавно добавила. Так вот, нужно сделать миграцию чтобы у уже существующих юзеров установилось дефолтное проперти isDeactivated = false
Вы на уровне монгуса можете определить дефолтное значение для поля и работать с ним из приложения как будто оно такое получено из базы, однако это не поменяет спми данные в базе и как следствие выборки работать не будут. Как сказали выше используйте updateMany чтлбы явно создать поле в бд
️lefrotite
{box:{cats:{num:3},{dogs:{num:7},{...}} users.update_one({'id':uid]},{'$unset':{'box.cats':''}}) {box:{}} Почему так происходит? Надо удалить только один объект, очищается весь
Vova
users.update_one({_id:"id"},{$unset:{"box.cats":1}})
Vova
Должно сработать
Ivan
Привет! Подскажите: скопировал файлы с реплики на иной сервер. Имя реплики в настройках одно, сервер в статусе Name:OTHER. Я пытаюсь добавить сам сервер через rs.add и удалить остальные через rd.remove, на что он пишет "errmsg" : "replSetReconfig should only be run on PRIMARY, but my state is REMOVED; use the \"force\" argument to override". Пробовал как rs.add( { host: "stage-name:27017", priority: 10, votes: 1 } , {force : true} ), не удаётся. направьте, пожалуйста
Nick
я тут обнаружил что размер чанка нельзя установить применимо к отдельной коллеции, т.е. только на бд вцелом. это я такой странный или кто-то еще с таким сталкивался?
Max
Привет! Насколько перфоманс вьюшек проседает в сравнении с обычными коллекциями?
Max
Есть на фронте табличка с фильтрами и сортировкой в которой Поля с 4+ коллекций, хочу упростить себе жизнь через вьюшки
Yar
почему может не работать update всех документов в монгусе?
Yar
multi: true стоит
Yar
*всех документов
Nick
условие не совпадает, попробуйте сделать find с тем же условием и сравнить что возвращает монга с тем что вы ожидаете проапдейтить
AstraSerg
Нужно начинать с создания Примари
Max
народ, подскажите пожалуйста что-то почитать на тему создания вьюх в монге? хочу создать вьюху на основе агрегации трёх колекций - но пока не пойму как =( инфы тоже не нашёл - видно гуглить разучился
Юрий
Добрый вечер. Подскажите пожалуйста ещё, монга версии 3.6 не видит /etc/mongod.conf Обновлялся с 2.6. ЧЯДНТ? т.е. я даже порт по умолчанию сменить не могу. только с параметрами при запуске. а так, что есть файл с конфигами, что его нет, ей всё равно. Запускается на дефолтных параметрах. Или она их откуда то с другого места тянет. Гугл как то помог слабо =\
mb
Проверь, наверняка в init-скрипте для mongod выставляется флаг -f|—config.
Ivan
Нужно начинать с создания Примари
а потом притаскивать коллекции?
AstraSerg
а потом притаскивать коллекции?
Не обязательно, но можно, если нужно.
Юрий
неа
но мне таки удалось подсунуть конфиги. монга их таки читала, но при запуске сразу же падала и запускалась с дефолтными настройками. Помогло прописывание форка в конфиге. ПОсле этого база стартовала, но была чистая. Нулевая. А когда падала и перезапускалалсь, то она таки подтягивала старые коллекции. Кажется проще не обновляться а снести и заного поставить)
AstraSerg
Обновление нужно производить последовательно. Или дамп/рестор
Юрий
А вы с 2.6 сразу на 3.6 пытаетесь обновиться? Это не прокатит
да, последовательно. 2.6->3.0->3.2->3.4->3.6 на 3.6 нужно было править конфиги с удаленным доступом и тут и возникли сложности с ними. Либо есть старые коллекции но конфиги дефолтные. Либо конфиги мои, а база нулевая. Хотя в конфигах поменял только порт и потом уже форк добавил. С наскоку решить не получилось. Видимо надо внимательно читать доки)
AstraSerg
> а база нулевая. Может, в неправильном месте базу ищет? в логах есть чё?
yopp
делаете дамп, ставите последнюю версию, восстанавливаете дамп, убеждаетесь что всё работает
yopp
если работает, старую инсталляцию можно выводить из эксплуатации
Constantin
Всем привет, подскажите какой-нибудь запрос, чтобы из коллекции получить документы, которые преближаются к лимиту в 16 мегабайт?
Constantin
Это плохо, у меня в проде возник один документ, который не может обновиться, потому что выскочил за 16 мегабайт, дополнительные логи не могу не остановив прод поставить
yopp
монга помоему это в свой лог пишет
AstraSerg
Всем привет, подскажите какой-нибудь запрос, чтобы из коллекции получить документы, которые преближаются к лимиту в 16 мегабайт?
есть проверка размера списка $size если у вас получится как-то связать размер документа и размер списка
yopp
там должен быть _id или запрос
AstraSerg
ну или через forEach как здесь: https://stackoverflow.com/a/40993183/2733113
Constantin
Да вот наверно придется
yopp
много документов?
yopp
если не очень, то mongodump и скрипт из 10 сторочек
yopp
mongodump в .bson это просто последовательно записанные документы
yopp
но самое главное: первые 32 байта — размер документа
yopp
forEach это дорого будет
yopp
сериализация/десериализация
yopp
хотя конечно если документов не очень много может и прокатить
Constantin
Много, снимаю дамп уже, буду на локальной машине прогонять
Constantin
Спасибо всем
Constantin
но самое главное: первые 32 байта — размер документа
Вот это очень крутая идея, попарсить bson напрямую
Constantin
Это же бинарный формат, должно будет быстро разобраться, посмотрю какие байты делят документы на части
yopp
тьфу, первые 32 бита :)