Aleksey
в монге есть гарантия атомарности работы с одним документом.
Alexander
😞 получается и откатить сделанное никак?
yopp
Откатить нет. Удалять не сразу, а по завершению операции от которой может потребоваться ролбек. Сделай по принципу https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/
Ilya
Привет!
Есть коллекция, в неё добавил поле с датой. Нужно обновить это поле у каждого каждого документа, чтобы дата была разной. Как это лучше всего сделать? Может есь какой то стандартный оператор?
Ilya
Чтобы был не цикл
yopp
Перебирать курсор и обновлять документы, только так. Можно ещё $currentDate, но не думаю что это то, что ты хочешь
Ilya
спасибо
ghett
Viktor
Может знает кто, сделали dump-restore при переносе базы на другой сервер и теперь документы неправильно отсортированы по умолчанию. $natural порядок не совпадает с _id: 1. Как восстановить порядок документов по айдишникам? Айдишники ObjectId
Viktor
На ум пришло только пройтись курсором с сортировкой по айди, записать в другую коллекцию и заменить исходную на полученную
yopp
Viktor
yopp
У тебя сколько данных?
Viktor
в одной коллекции гигабайт на 15
yopp
Ну вот сделай поле которое будет поддерживать нужную тебе сортировку и сделай по нему индекс в нужном направлении.
Viktor
А если бы коллекция весила 1тб, то стоило бы о таком задумываться? Или предложенный тобой вариант сработает и в этом случае?
yopp
Не стоит вообще о таком задумываться, пока ты не знаешь в чём именно у тебя проблема с данными.
Viktor
Окей, спасибо за разъяснение
Nick
Как обладатель коллекции в 800Гб могу сказать что стоит задумывать как можно раньше))) Иначе тупо нереально даже новый индекс простроить, не говоря уже по выборке с COLLSCAN и сортировкой
Nick
600кк доков если интересно
Nick
ну у тебя небось шардирвоание куча нод)))
yopp
Не очень куча
Viktor
А у вас коллекции шардированы?
Viktor
А, ну понятно
Nick
у меня нет хДДД
yopp
Да какая разница
yopp
Индексы нормально строятся на secondary
Viktor
Так разве скорость перестроения индекса не зависит напрямую от кол-ва шардов?
yopp
Выводишь ноду в stand-alone, создаёшь индекс, возвращаешь ноду назад. Повторяешь со всеми нодами в реплике
yopp
0downtime
Dmitry
0downtime
там же есть флаг делать все на фоне кажется
Dmitry
чтобы самому не морочиться
yopp
Dmitry
на практике не пробовал
Dmitry
ну слышал что под 50% грузит :)
yopp
Оно на primary запускает background создание индекса, которое может легко тебе поставить раком ноду
Nick
собственно проблема в том что в один прекрасный момент реплика перестала догонять мастер, с тех пор осталось только одна примари нода. но это неважно, вскором времени планируется полностью реорганизовать базу
yopp
И реплицирует такое создание только после завершения на primary
yopp
Вывод ноды — безопасно и контролируемо
Dmitry
ясно, буду знать
yopp
Nick
Я правильно понимаю, что для вывода ноды и возврат обратно еть временной лимит связанный с оплогом?
yopp
Nick
спасиб
Aleksey
ну слышал что под 50% грузит :)
я пробовал. всё проклял. примари в момент востановления из бекапа стоит раком. но пока он не простроит индекс секондари и не начнут.
вся система стоит колом. la заоблачный. колво операций в очереди за гранью разумного. все запросы уходят на colscan. отваливается ssh.
есть сильное желание нчать заниматься чем то другим. например уборкой снега.
tenni
yopp
yopp
В смысле давно обсуждали
Aleksey
да да. я как раз про тогда и рассказываю
Aleksey
я тогда вас не послушал и бахнул по свойму с бекграундом. ну чтоже... ошибся поделись опытом.
делюсь.
yopp
:)
Viktor
Скажите, а есть ли простой способ переместить документ в другую коллекцию? Чтобы не делать find/insert/remove по отдельности
Viktor
на ум пришло только findAndRemove + insert
yopp
yopp
8 часов кажется
Viktor
yopp
сначала вставить, потом удалить
yopp
выбрать, пометить как «удаляемый», вставить, пометить как удалённый
yopp
или просрать данные, да
Nick
ну да трейдофф при отсутвии транзакций
yopp
Там минорное обновление экспортера, оно теперь умеет в SSL (и вероятно в X509, но я ещё не проверял)
yopp
(И жарка стала варкой, плюс похудела в три раза)
Aleksey
а выбор неймспейсов ?
yopp
Пока не добрался
yopp
Как доберусь закрою ишуй, тебе письмо упадёт
Aleksey
Ок пасиб
yopp
Я, блядь, хочу в глаза посмотреть тем людям которые придумали дизайн аутентификации в монге. И заставить их, сука, деплоить x509 на кластере из ста нод, пока до них не дойдёт какой феноменальный пиздец они сотворили
yopp
Ну и да, спеками можно спокойно подтираться: https://github.com/mongodb/specifications/commit/964a8aa571040208bd5e5443241b3bb628fb535f
При этом mongo-shell 3.4.3 в это не умеет
O.
Всем добрый день/вечер!
O.
Подскажите.
Задача.
1. Кладём документ с датой создания.
2. Через 30 секунд документ должен удалиться при помощи стандартных средств MongoDB.
O.
К примеру таким образом:
db.codes.ensureIndex( { "createdAt": 1 }, { expireAfterSeconds: 30 } )
O.
O.
Естественно createdAt у документа будет.