victor
товарищи, подскажите, пожалуйста: нужно ли проводить какие-либо манипцляции над данными бэкапа в виде bson, сделанными, в версии 4.0, перед тем как ресторить эти данные в 4.4?
victor
а то я вот попробовал обновиться с 4.0 до 4.2, и с 4.2 до 4.4 и получаю логах ошибку
This version of MongoDB is too recent to start up on the existing data files. Try MongoDB 4.2 or earlier."}
{"t":{"$date":"2021-06-15T13:53:53.651+00:00"},"s":"F", "c":"-", "id":23089, "ctx":"initandlisten","msg":"Fatal assertion","attr":{"msgid":4671205,"file":"src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp","line":913}}
Андрей
Андрей
victor
Это апгрейд по бинам и старт на том же data path?
угу. причем такая ситуация на 2/4 шардах, на 2 других запустилось - ок. я даже не хочу в этом разбираться, просто подниму новый кластер сразу на 4.4. Хотел лишь убедиться, что с данными все будет хорошо
Андрей
setFeatureCompatibilityVersion — MongoDB Manual
https://docs.mongodb.com/manual/reference/command/setFeatureCompatibilityVersion/
Андрей
Эту штуку нужно тискать при апгрейде по бинам.
victor
Товарищи, вопрос по шардингу:
В документации сказано, что
To shard a collection, connect to the mongos from the mongo shell and use the sh.shardCollection() method
Вопрос вот в чем: сейчас бд не содержит коллекций, и я хочу сделать заресторить одну коллекцию - мне нужно
а) создать пустую коллекцию, сделать ей shardCollection и запустить restore
б) сделать restore коллекцию, create an index и после этого сделать shardCollection ?
victor
коллекция, что я хочу заресторить, она с не-шардированной монги
yopp
Можно и так и так. В случае с первым вариантом, можно нулевой чанк порезать на несколько частей и расбалансировать их по кластеру. В этом случае вставка будет происходить сразу параллельно на несколько шардов, плюс потом балансировщику нужно будет меньше работать чтоб после вставки равномерно распределить чанки
yopp
Обратите внимание что балансировка идёт не по объёму данных, а по количеству чанков
victor
victor
Не подскажете, как быть с
mongos> use beet
switched to db beet
mongos> db.dropDatabase()
{
"ok" : 0,
"errmsg" : "timed out waiting for beet.pages",
уж не знаю, почему но поиск в гугле выдает малополезную и не относящуюся к теме выборку, единственная подсказка - неработающий ответ от индуса :|
victor
извиняюсь, ложная тревога. видимо, таймаут был вызван внутренними процессами монги, потому как через 10 минут дропнулась безо всяких проблем
Anton
Всем привет! Подскажите, я правильно понимаю, что поиск по вхождению не работает в MongoDB с индексацией. Например слово "автомобиль" по запросу моби никогда не найдет?
victor
@dd_bb не подскажете, откуда такое прожорство у mongorestore? Восстанавливаю коллекции на mongos, я думал это должен был быть слабенький сервачок, чтобы только роутить запросы, а в итоге пришлось взять r5.large тип, чтобы заресторить коллекцию размером в 16гб
victor
Nick
Pavel
victor
victor
с другой стороны, можно психануть и взять на время ресторейшена инстанс на 64 гб рам
victor
@pperekalov я сильно извиняюсь, но мозг сломался, сейчас ресторится та самая 130гб коллекция о которой я упоминал и вот что показывает memory consumption
Pavel
не понял вопрос)
Anton
Привет всем!
Как лучше реализовать прослушивание новых документов в коллекции?
Хватит ли встроенного .watch() для 10-60 док-ов/5минут
Или есть какие-то другие решения помимо этого
Sergey
Lev
https://mongoplayground.net/p/Vk7eqq12KAr
Книжки с авторами с просмотрами и рейтингом
Я нашел самые просматриваемые книжки по авторам.
А как из этого результата найти топ 3 по рейгингу?
Nick
Lev
А как доступситься до полей, которых нет в группировке?
Lev
Как то найти по результатам пайплайна можно?
Пайплайн в пайплайне?
Nick
Lev
Lev
А... сначала отсортировать а потом группировать. И сортировка останется
Lev
Ну, наверное так
https://mongoplayground.net/p/igpJLHFJKjB
Это отлично, а как по этим идшникам найти в той же таблице данные?
Lev
... lookup?
Lev
Как изменить в пайплайне документ, чтобы после операции вместо документа был его поддокумент
Lev
Были шкафы с книгами, стали просто книги. unwind и что то еще
Lev
Вот что я хотел
https://mongoplayground.net/p/zlosjeTlpwz
Надеюсь это корректно
Kirusick
вопрос по монгусю и монге наверное в целом. есть такая схема
foo {
bar {
fieldA { id }
fieldB { id }
fieldC { id }
}
}
надо получить мне объекты из филда bar у которых id совпадает с введенным
yopp
lutik
Ребятки, подскажите пожалуйста как вытянуть отсюда $sum: 'products.price'
lutik
lutik
Это я схему в монге описал
lutik
Знаю что через aggregate и sum + toInt, но чёт не получается
Anton
lutik
Я знаю)))
lutik
Пасиба
yopp
https://docs.mongodb.com/manual/reference/operator/aggregation/reduce/
lutik
👊
lutik
Пасиб
lutik
Блин, все равно ничё не получилось
lutik
Вообщем я делаю match, что бы вытянуть нужную сущность, потом хочу через $sum пролететься по ней, но не получается, через reduce тож пробовал, не получилось
lutik
Не работает именно когда вешаю оператор $toInt, пишет, что не может конвертировать строку
Anton
Всем привет. У меня возникла проблема с деплоем express на heroku: не подключается никак mongoDB, кто-то сталкивался с этой проблемой ?
Nikita
Доброе утро. Не подскажите почему не ищет по _id, но ищет просто по id, хотя в базе именно _id.
Вот строчка кода с рабочим вариантом:
AggregationOperation match = match(where("id").is(id));
️lefrotite
Предположим у меня есть коллекция users, и мне хочется, чтобы если я добавил новое поле где-то у себя в коде, это новое поле появилось у всех объектов в users. В SQL базах это вроде называется моделями, когда у всех объектов одинаковые поля. Как можно такое сделать в mongoDB?
Viktar
️lefrotite
Немного костыльно. У монго нет какого-то встроенного режима шаблонов, чтобы у всех объектов автоматически добавлялось новое поле?
Nick
Lev
Я агрегации не могу выполнить на unsolicitedResponseEntry
даже двухминутный таймаут улетает
Lev
Такие размеры монга должна легко обрабатывать?
Viktar
да
victor
@ViktarC ты нам нужен, кажется
Vladimir
Ау, это что?
Vladimir
/spam
Viktar
victor
блин, сорри
Nick
Такие размеры монга должна легко обрабатывать?
4кк не так много чтобы все померло, но если у вас там 500мб оперативы, то может просто походы за доками надиск долгие. Помониторьте что с нагрузкой под монгой
И свеху вопрос о том что вообще запрос из себя представляет?
Lev
Lev
А как посмотреть за монгой, за нагрузкой
Lev
А что если я хочу просто поанализировать? И индексов нет
Nick
Владимир Т
Всем привет. Такой вопрос. Есть сервер с шардированой базой в 400гб, необходимо сделать ей реплику. Возможно на уровне файлов перенести ее копию для создания реплики не получится. Если я создам сервер с такой же конфигурацией и добавлю его как секондари, он отреплицируется полностью?
Владимир Т
монгодамп монгорестор занимают 3 недели
yopp
Да, возможно. При условии что все операции по копированию данных, вводу в кластер и синхронизации займут меньше времени чем имеющееся у вас окно репликации
Владимир Т
yopp
А, пропустил что «перенести на уровне файлов не получится».
В этом случае initial sync должен гарантированно уложиться в окно репликации
yopp
Replication Window это время между самой последней и самой ранней записями в оплоге
Владимир Т