Anonymous
ок спасибо
yopp
попробуйте вручную проверить ваш конфиг, явно запустив как mongod --config=<path>
yopp
и за одно посмотртие, может она где-то при загрузке об этом скажет
Max
там по скрину выше видно, что монга стартует с командной строки
надо —config туда передать , чтобы наверняка
yopp
и это тоже, да
yopp
если не через services или systemctl запускаете
Anonymous
putty
yopp
putty это ssh клиент. у вас 14.04 убунта, если монга не врёт, в этом случае вам лучше управлять демоном монги через services
yopp
например services start mongo и services stop mongo
yopp
правда там был бардак с названием сервиса, посмотрите в service --status-all
Anonymous
yopp
а что пишет?
Anonymous
Нет mongo
Anonymous
http://joxi.ru/zAN9K8WUlYzYJ2
yopp
хм, а как вы монгу ставили?
Anonymous
У меня была другая проблема один из БД не работала Похоже что то сломала Попробую переустановить Спасибо всем
yopp
yopp
Документы обновляются или только добавляются?
Max
Только до.авляются
yopp
Тогда есть классический способ. Но он потребует либо изменения логики в приложении либо ещё столько же места
yopp
Создаёте коллекцию с новым шард ключом
yopp
Добавляете в приложение одновременную запись в обе коллекции
yopp
Фиксируете самый большой objectid или если есть другой более хронологический маркер и его тоже
yopp
И деполоите приложение. Вероятно надо будет остановить запись на небольшой промежуток, чтоб точно зафиксировать последний документ
yopp
А дальше пишете скрипт который переливает данные до последнего objectid из старой коллекции в новую
yopp
Когда это закончится, убираете запись в старую коллекцию и переключаете приложение на использование только новой
yopp
Место можно съэкономть не записывая в обе, а записывая только в одну. Но тогда приложение при чтении должно самостоятельно роутить запросы в нужную коллекцию
yopp
Это не всегда возможно и не очень просто. Но если будет новый шард, место вероятно не является проблемой
yopp
Единственная засада — проверка целостности такой миграции без остановки
yopp
Но опять-же после завершения перелива всех данных из одной в другую коллекцию можно на небольшое время остановить запись и проверить что документов одинаковое количество. Ну и какие-то легковесные запросы которые помогут быстро проверить что и там и там в целом всё совпадает
Max
Ух
Max
Спасибо за столь развернутый ответ
Max
Буду вникать
yopp
Я так делал, причём не только в монге
Max
Идея ясна, пообщпюсь с программерами
Max
Думали самое важное перетянуть в отдельную коллекцию, без чего точно не сможем прожить день полтора
yopp
Да. Можно сначала зафиксировать id, переконвертировать, а потом уйти в write-only режим на время пока разница накопившаяся между действиями тоже переокнвертируется
Max
Но вариант с роутером запросов в приложении надо рассмотреть
yopp
Там есть куча подводных камней, не всегда бизнес-логика позволяет так сделать
yopp
Я бы лил в две коллекции, так оно требует минимум изменений
yopp
Но из этого есть один большой вывод: если у вас большая система, очень желательно внедрить штуку, которая позволяет несколько минут буфферизировать входящий трафик. Ну и чтоб клиенты умели ждать несколько минут
yopp
Либо иметь слабую связь между системами. Например я видел несколько примеров когда народ использовал логи nginx как буффер. В лог писалось все что нужно приложению, а дальше была выгребалка, которая тейлила лог и заливала данные в базу
Max
Я еще пытаюсь понять вот если в худшем случае руками поудалять чанки в конфигсеревере. И будет проблема, то какого то Да? Потеряем коллекцию или монга совсем арломается? Или неизвестно и лучше не Надо? :)
Max
Простите за сливовый текст. За рулем не оч удобно. Справлюсь.
Max
Исправлюсь
yopp
Там вообще надо не чанки удалять, а конфиг коллекции
yopp
Даже не удалять, а модифицировать
yopp
Но так как это недокументированное минное поле, что там может случится — хз
Max
Serhio
монгу в массы ХЕР политике )
yopp
Не надо в этом канале разводить политический срач
Anonymous
Мечтатель
А документации нет что-ли?
Viktor
по вложенному массиву сделать skip и take?
Viktor
если так, то тогда AggregationPipeline нужен, в методе Collection.Aggregate
Serhii
как в таком документе обновить ТОЛЬКО значение поля "game1" в "data" - 'worlds' - "Math" ???
Serhii
yopp
Полностью указать путь к полю через точки `data.worlds.Math.game1`
Rustam
Кто нибудь знает по планам релиз 4ой версии на какую дату намечен?
Мечтатель
Мечтатель
тут написано, что летом этого года
Rustam
Nick
и там написано что сроки эти типа внутренние и на них не стоит опираться
Мечтатель
Да
Nick
ктати, а тут есть ктонить связанный именно с разработкой самой монги?
Артём
гайз, у меня есть в документе obj: [ {a : 1}] как в него закинуть можно еще пароску объектов?
Nick
addToSet
Nick
или то аррай
yopp
Serhii
почему пишет эррор?
var newValues = {$set: { 'meta.parent.' +id : req.body}};
Serhii
не хочет подсоединять id динамично
Denis
var newValues = {$set: {}}
var field = meta.parent.${id}
newValues["$set"][field] = req.body
Denis
meta.parent.${id} в ``
Denis
а вообще это к жс относится а не к монге
Serhii
табл в том что это не работает
Serhii
The dollar ($) prefixed field '${req' in 'meta.${req' is not valid for storage.
Denis
а ты где это вводишь?