yopp
По одной простой причине: нет критериев сравнения
Dmitriy
$or + $regex?
yopp
https://docs.mongodb.com/manual/reference/operator/query/or/ В массиве укажите ваши условия: $or: [ {login: RegExp()}, {name: RegExp()}, ...]
Dmitriy
db.getCollection("user_profile").find({$or: [ {"personal.first_name": {$regex: ".*MIT.*", $options: 'i'}}, {"personal.last_name": {$regex: ".*ich.*", $options: 'i'}}, {"email.email": {$regex: ".*ich.*", $options: 'i'}} ]})
¥
Привет! Вопрос: монго постоянно убивает процесс с Error: no chunks found for file, possibly corrupt. Кто-нибудь сталкивался?
¥
Кроме того, что это баг гридфс и лечится обновлением, ничего дельного не гуглится. Обновление не помогло
yopp
Привет! Вопрос: монго постоянно убивает процесс с Error: no chunks found for file, possibly corrupt. Кто-нибудь сталкивался?
GridFS это не фича монги, это спецификация как хранить файлы в монге. https://docs.mongodb.com/manual/core/gridfs/ Со стороны хранилища это просто две коллекции, и все остальное исключительно проблемы драйвера. Такие ошибки могут возникать если размеры в метаданных не совпадают с реальным размером (например из-за отсутствующих сегментов) Если это известная бага, убедитесь что у вас реально обновилась версия драйвера. Если проблема останется, ознакомьтесь со спецификацией и проверьте руками что данные не побились ещё при записи.
yopp
Второй момент: если у вас кластер, то убедитесь что у вас корректные read и write concerns, и у вас нет ситуации когда вы читаете из gridfs до того как данные реплицировались по кластеру (см majority read/write concern)
¥
кластера нет, все максимально просто
yopp
Я очень плохо разбираюсь в mongoose. Вероятно условие в match не возвращает документов?
ᴅⁱᵐⁱᴅʳ0ˡ
всем привет
ᴅⁱᵐⁱᴅʳ0ˡ
подскажите пожалуйста при восстановление дампа, данные перезапишутся если они уже есть?
yopp
подскажите пожалуйста при восстановление дампа, данные перезапишутся если они уже есть?
Если в коллекции уже будут документы с совпадающим _id, то вы получите ошибку. Восстановление заключается во ввставке документов из дампа
ᴅⁱᵐⁱᴅʳ0ˡ
ок, спасибо
yopp
4.0.10 (May 31) ◦ 3.6.13 (June 10) ◦ 4.2.0-rc3 (Jul 21) • Плейграунд для запросов • Документация • Официальные курсы по MongoDB Stable: 4.0.10 ◦ Bugfix: 3.6.13 Legacy: 3.4.21 (Jun 12) ◦ Dev: 4.2.0-rc3 (Jul 21) End of life: 3.2.21 (Dec ’18), 3.0.15 (May ’17)
Evgeny
это нода?
MⅨ
Да я скопипастнул
MⅨ
не подумав
MⅨ
всё уже решил
Владимир Т
здравствуйте, хочу восстановить несколько коллекций, мне пишет the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
Владимир Т
пробую с параметром --nsInclude 'TEST.*' тоже самое
Veaceslav
Всем привет, мужики я правильно понимаю что createdAt который сделал timestamp нельзя изменить ?
Ilya
Добрый день, коллеги! Может кто-нибудь подбросит идеи, куда копать. [rsBackgroundSync] Fatal Assertion {какой-то номер} at src/mongo/db/repl/rs_rollback_no_uuid.cpp - может быть следствием нехватки optlog-a?
Ilya
mongo 3.6
yopp
и какое полное сообщение об ошибке. судя по rs_rollback у вас какие-то проблемы в момент роллбэка
yopp
пробую с параметром --nsInclude 'TEST.*' тоже самое
там дурацкие сообщения об ошибке. Конфигурация с полными названием ключей задаются через = : --nsInclude=‘foo.bar’ а не --nsInclude ‘foo.bar’
yopp
А можно список колекций указать, или только одну?
Насколько я знаю, поддерживается только wildcard https://docs.mongodb.com/manual/reference/program/mongorestore/#restore-collections-using-wild-cards Хотя тут в примерах без =, лол
Ilya
и какое полное сообщение об ошибке. судя по rs_rollback у вас какие-то проблемы в момент роллбэка
Rollback finished. The final minValid is: { ts: Timestamp(1563798285, 80), t: -1 } Unable to complete rollback. A full resync may be needed: UnrecoverableRollbackError: need to rollback, but unable to determine common point between local and remote oplog: NoMatchingDocument: RS100 reached beginning of remote oplog [1]
Ilya
а какой у вас размер оплога и какой размер окна репликации?
в конфиге не указан, значит по умолчания 5% of free disk space размер окна репликации это не это случайно? log length start to end: 789secs (0.22hrs)
yopp
789secs это очень мало
Ilya
я читал что люди 72 часа делают
Ilya
есть какие-либо рекомендации как расчитывать?
yopp
я читал что люди 72 часа делают
время это функция размера оплога и среднего размера документов и потока записи
yopp
размер оплога имеет смысл оставлять таким, чтоб получившегося окна репликации хватало на обслуживание
yopp
минимально это время которое необходимо на initial sync + какой-то запас
Ilya
спасибо
Dmitriy
ребят, спрошу глупый вопрос, но мало ли кто-то сталкивался или в принципе подскажет в какую сторону посмотреть. ситуация: на локалке есть развернутая монга как образ docker, до сегодняшнего дня стояла версия 4.0.1 и все работало на отлично. сегодня коллега выкатил обновление, которое использует materialized view из версии 4.2-rc. соответственно для того чтобы все на локалке работало я сделал новый образ docker-а с монгой версии 4.2-rc3. в результате сейчас при запуске основной части кода я не имею ни каких проблем, но при запуске методов, которые рабоатют с materialized view постоянно получаю ошибку: read tcp ... : i/o timeout при этом ни какие настройки соединения с базой на уровне приложения не менялись. куда можно поглядеть и может что подкрутить?
Anonymous
hi
Dmitriy
и да, все тоже самое (я имею в виду код работающий под 4.2-rc) на сборке в travis отрабатывет на ура
Dmitriy
не сворм случайно?
нет, чистый докер, ну разве что для удобства docker-compose использую
yopp
Вообще это не очень идея сейчас катать куда-то кандидаты 4.2
Dmitriy
мне она тоже не нравится, но к сожалению в данном случае не все от меня зависит в проекте (
Dmitriy
Проверьте версию драйверов
вы имеете в виду для ЯП используемого в проекте?
Dmitriy
Напишите письмо начальству
начальство и решило это сделать))))
yopp
Вам сейчас никто не поможет. Более того, есть неилюзорный шанс проверить вашу систему бэкапов
Dmitriy
Да.
да, спасибо, первым делом завтра с утра попробую
yopp
Если валятся только команды для новых фич, то вероятнее всего что лажа с драйвером
yopp
начальство и решило это сделать))))
Покажите индицент и скажите что до 4.2.1 ничего катать больше не надо
yopp
Интересно, чтож у вас там за такой кейс, что ради новой фичи начальство готово протерять данные в продакшене
yopp
А. Тогда ладно
Ilya
Доброе утро, коллеги. Вопрос по шардингу. Нормальная ли ситуация когда шардят только большие коллекции, а мелкие оставляют как есть, т.е. просто реплика. Или обязательно нужно шардить все?
Sergey
Доброе утро, коллеги. Вопрос по шардингу. Нормальная ли ситуация когда шардят только большие коллекции, а мелкие оставляют как есть, т.е. просто реплика. Или обязательно нужно шардить все?
При такой формулировке вопроса, да, мелкие можно не шардировать. Однако, реальная жизнь может преподнести сюрпризов и маленькая коллекция внезапно станет большой.
Dmitriy
Привет всем. Делаю в монге find документов. Как можно вернуть эти документы, но с кастомным полем внутри документа(по-дефолту его там нету) ? Не могу это нагуглить норм.
Alexey
Коллеги, всем привет! Я тут монгу осваиваю. Насколько я понял нельзя создать реплику с двумя узлами. Верно?
Alexey
можно, но ты не сможешь в нее писать если один из узлов помрет
Потому что не будет хватать голосов. Понятно...
Alexey
И поэтому же нет смысла размещать два узла на одной машине. Верно? Я просто столько всего прочитал, что в голове каша. Хочу все уточнить
h1dw0w
Потому что не будет хватать голосов. Понятно...
Можешь добавить 3 ноду-арбитра, но и тут могут возникнуть проблемы при мажорити записи
Alexey
Потому что у меня только две машины
Alexey
Я пытаюсь создать репликацию базы на двух машинах. Конечно можно сделать через удаленный доступ, а все узлы будут крутиться на одной машине, но так я только бекап получу без балансировки
Alexey
Поправь если брешу)
yopp
Вы можете добавить арбитра
yopp
А, уже предложили.
yopp
Балансировку нагрузки в случае репликасета, вы получаете только по чтению, ито если вам консистентность не важна
readConcern majority и read preferences secondarypreffered с вами не согласен. Но в этом случае majority не будет, как вы правильно заметили.