Igor
😁
Joe
вообще я задумался нужен ли тут id
А если , через модель, то он робит?
Igor
если поле задать то куда скажешь запихает, да
Igor
но мне надо мигрировать =) а потом модель
Igor
пофик. тут не нужен id
Joe
да, наверное не нужно
Он нужен, если ты связываешь с другой коллекцией, а так - нет смысла
Joe
пофик. тут не нужен id
Вот и порешали)
Igor
не связываю, да
Igor
еще другой вопрос
Igor
я хочу мигрировать с {nodes: []} на {elements: {items:[]}}
Igor
и впихнуть в items как раз содержимое nodes
Igor
вот я написал как на скрине, оно мне строку и присвоило
Igor
а как мне при updateMany сказать мол поставь сюда значение поля .nodes?
Igor
подскажите пожалуйста
Igor
учу синтаксис =)
Igor
items: 'projects.$.nodes' - так тоже не катит
Igor
:D
Igor
как мне переселить поле?
Михаил
а как мне при updateMany сказать мол поставь сюда значение поля .nodes?
Никак, тот синтаксис, что ты используешь - он для аггрегаций 1 запросом получаешь все свои документы Проходишься по каждому и вставляешь значение из найденных документов
Igor
то есть только выбрать документы и апдейтить в цикле?
Igor
спасибо
Joe
то есть только выбрать документы и апдейтить в цикле?
Или через агрегации. Погуглил бы, узнал бы)
Igor
гуглю, гуглю. узнать пока не получилось
Joe
спасибо
Держи инструкцию https://t.me/nodejs_ru/695558
Igor
мне надо просто сделай это поле равно то поле
Igor
вот я на п.4
Joe
гуглю, гуглю. узнать пока не получилось
Был тут? https://stackoverflow.com/questions/3974985/update-mongodb-field-using-value-of-another-field
Igor
да, но мне не надо конкат
Joe
вот я на п.4
А 1ые 3 все выполнил в точности?))
Igor
без конката написал $nodes
Joe
да, но мне не надо конкат
А ты без него просто можешь)
Igor
А 1ые 3 все выполнил в точности?))
время час ночи да в точности
Igor
А ты без него просто можешь)
я спрашиваю как это сделать
Igor
код который я показал просто строковое значение пихает
Igor
я не понимаю как мне запросом проапдейтить базу не гоняя все данные в ноду
Joe
код который я показал просто строковое значение пихает
Я не уверен, но возможно это связано с клиентом. Лучше поставь монго модуль и в тест файле тот же запрос выполни и проверь, должно заработать
Joe
я не понимаю как мне запросом проапдейтить базу не гоняя все данные в ноду
Не надо в ноду, я про то, что в ноде запустить тот же скриптт
Joe
А чтоб скрипт этот работал поставь монго модуль в нпм
Михаил
Или через агрегации. Погуглил бы, узнал бы)
Аггрегации же не изменяют документы в базе
Joe
С чего бы
Михаил
А какие там операторы под изменение базы?
Михаил
Да и сама суть агрегейшн фреймворка про другое, про формирование нужных прелставлений, а не про крады
Joe
Я уже труп. Сам всегда говорю, что агрегация зло и нужен только дата анализа (и только получает данные) и такой, хм та не можно менять
Igor
https://github.com/seppevs/migrate-mongo вот эту штуку юзаю
Igor
что не так с моим синтаксисом и какой правильный?
Joe
Ахах бывает, ложись тогда отдыхать лучше)
Или не настолько я не прав: https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/
Igor
ну вот этот $set я и пытаюсь заюзать
Joe
Или не настолько я не прав: https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/
Я бегло почитал, и не дошел, он все же может писать или только чтобы вытащить данные
Igor
что мне написать чтобы O.a = O.b?
Михаил
Я бегло почитал, и не дошел, он все же может писать или только чтобы вытащить данные
Да вроде может, слушай, прикольно, надо изучить, спасибо
Joe
ну вот этот $set я и пытаюсь заюзать
Попробуй кста $$ я не особо помню в каких кейсах они юзали его щас, возможно решит
Igor
ух
Joe
Да вроде может, слушай, прикольно, надо изучить, спасибо
Ага. Заставил ты меня повестись и решить, что сплю
Joe
Да вроде может, слушай, прикольно, надо изучить, спасибо
Кста, в 5 версии они ещё и добавили let чтобы не делать фигню как '$field' а присваивать его в лет и юзать в след шагах. Читал в обзоре, в доке еще не курил детали
Михаил
Igor
Igor
Joe
Это для встроннных переменных Типо $documentField а $$VAR
Мб, давно не юзал агрегации (считаю, что зло) и только для админки или генерации больших и редких отчотов юзаю
Михаил
что мне написать чтобы O.a = O.b?
{ $addFields: { 'elements.items': '$nodes'}}
Joe
Ну все. Раз 4й пункт прошел, остановись и начни с 1й/2й
Joe
{ $addFields: { 'elements.items': '$nodes'}}
О, кста да. Заметил что иногда a: { b: неверно(не так как ожидается) работает
Joe
Поэтому всегда дот нотацию юзаю
Igor
MongoInvalidArgumentError: Update document requires atomic operators
Igor
ох уж эта лёрнинг курва. как научиться базовым вещам в полвторого ночи
Igor
.updateMany({}, {addFields: {'elements.items': '$nodes'}} )
Михаил
Igor
да, я уже заметил =))
Joe
Я сначала считал злом а теперь все на них пишу, потому что могу)
Но когда постигнешь момент оптимизации (ускорения) начнешь с них, поверь) профайлер вруби и поймёшь) + они не атомарны)
Igor
Unknown modifier: $addFields. Expected a valid update modifier or pipeline-style update specified as an array MongoServerError: Unknown mo difier: $addFields. Expected a valid update modifier or pipeline-style update specified as an array
Igor
я ваще фрустрирован
Joe
ох уж эта лёрнинг курва. как научиться базовым вещам в полвторого ночи
Читать доку монги!) Самое первое, у них и блог и дока норм такая
Igor
и кстати что там написано про такой случай?