Али
Может кто-нибудь простыми словами рассказать про миграцию схем? шо это и с чем едят
Али
Спасибо
Nick
Может кто-нибудь простыми словами рассказать про миграцию схем? шо это и с чем едят
вообще миграция схем БД как процесс решает задачу изменения структуры и наполнения БД между релизами софта - добавить таблицы, колонки, настроить индексы и т.п сущности. Туда же относятся заливка справочников, преобразование форматов данных (например сделали новое поле строковое вместо старого числового и нужно перекатить все старые значения в новое поле поменяв тип) и т.п.
при хорошем проектировании почти все эти задачи можно решать в отложенном режиме руками админов зачастую без даунтайма. Всякие тулзы по миграции позволяют автоматизировать этот процесс и сделать его одинаковым для всех стендов, но как правило требуют даунтайма (либо ручной запуск опять же админами)
на дев среде и при прототипировании миграция вещь абсолютно бесполезная и просто трата времени. При наличии дев-стеджинг-пром стендов уже начинает иметь место быть. С ростом количества стендов/сложности конфигураций/кол-ва разрабов меняющих БД - становится обязательным, но к этому моменту уже и должен быть CI/CD и куча бумажек регламентирующих все это и вопросов о том надо/не надо и как делать уже ни у кого не возникает
Viktar
Всем привет, в коллекции есть строка с урлом вот такого вида
"urlPicture" : "../../../../../https@docs.watchsystems.com/pictures/54438/xxxx.jpg"
можно ли её в агрегации преобразовать к урлу нормального вида?
"urlPicture" : "https://docs.watchsystems.com/pictures/54438/xxxx.jpg"
Nick
Viktar
Viktar
У меня уже есть агрегация, не хочу размазывать логику
Nick
Юрий
хочу у документов добавить поле с ид ссылкой на обьект в другой колекции. его лучше как строку сохранять или как ObjectId ?
если делать ObjectId то для поиска $in надо будет передавать массив ObjectId.
кто как делает?
есть какая то еще разница как делать, строками или ObjectId ?
ps контроль целостности не требуется.
Nick
@dd_bb под горячую руку не то сообщение попало?
Nick
амнистия)
Al
всем привет.
а можно в findOne включить в результат все поля, не перечисляя их, плюс еще одно с его преобразованием
Al
db.contents.findOne({ __type: 'track', pageId: ObjectId("602bd9b512fa32eaa42bd512"), shortName: 'trackB', deletedAt: null}, { media: { $elemMatch: { isCurrent: true, deletedAt: null } } });
Al
вот тут к media добавить остальные поля, не перечисляя их явно
Шох
Всем привет, помогите новичку.
Данные(статистики) хранятся в такой моделе. Месяц назад случилось беда и был пропущен один день. Сейчас нужно вручную заполнить один день с данными. Но save(), update() не помогает. Работаю через mongoose
Nick
Al
Nick
Nick
все поля документов из монги будут получены как обычно и ничего не надо явно указывать
Al
а для findOne точно нету никакого хака? тк оно все же модель возвращает
Nick
просто не используйте проекцию
Nick
и потом ручками в коде добавляйте поле
Al
Al
или выбрать весь массив и в коде маппить.. но нет массив может быть большой.
Nick
зачем двумя? поулчили данные, в коде их преобразовали к нужному виду, ничего не мешает сделат ьпроекцию и на стороне кода а не в базе
Шох
что значит "не помогают"?
Собираю объект и в конце делаю save() он долго думает и просто сервер перестает отвечать. Думал может я совсем не правильную функцию использую
Al
Al
Nick
Guli
всем привет) может, кто нибудь помочь ?
Guli
record = {'fruit_name': {'apple':{'status':'0'},'banana':{'status':'0'}}}
Guli
я хочу заапдейтить статус, поменять его на 1
Guli
как я могу это сделать
Guli
fruit_information.update({'_id':'xxxx'},{'$set': { 'fruit_name.apple.status':1 }})
Guli
так делала но не пашет, может я что-то не так делаю(
Nick
Guli
опечатка( спасибо)
Nick
тогда проверьте что _id у вас строковый в базе, а не дефолтный ObjectID
Guli
objInstance = ObjectId(id)
print(fruit_information.find_one({"_id": objInstance}))
Nick
Guli
о кажется, я поняла))
Guli
спасибо большое))
nefertisu
После замены пользователя хочу сделать save , но не понимаю от имени кого его вызывать. Пробовал от юзер коллекшина, но он деприкейтед и не работает
Юзаю mongoose
Nick
nefertisu
Nick
репелейс у вас без авейта, а сайв сам по себе ничего не делает
nefertisu
ща попробую всё исправить
nefertisu
Исправил, всё работает, но выскакивает данный ворнинг. Я опять же гуглил и говорят поставить useFindAndModify в false, но я не совсем понимаю, это костыль вида отключить ворнинг? Или необходимость для корректной работы
Daniil
nefertisu
Просто метод deprecated
Да это я и так понял, вопрос то в том что аналогов ему нет даже на оф доке на котору ссылку ворнинг кидает, вместо этого говорят юзать useFindAndModify в false при коннекте, но разве это не костыль и нет аналогов?
Usein
Привет всем, есть одна модель Product, у которой 2 свойства ссылаются на другие модели.
Как мне добавить новый документ Product? Мне у тех 2-х ссылок нужно получить ObjectId-s?
Viktar
nefertisu
у меня есть вот такая схема .Я хочу в каком-то из роутингов добавить элемент в этот массив projects, мне это сделать, потому что вариант на втором скрине не рботает
nefertisu
Nick
nefertisu
Nick
логируйте ошибку, разбирайтесь
nefertisu
Viktar
подскажите, что значит эта ошибка в логе монги?
unw_get_proc_name(563E978CD7B6): unspecified (general) error:
Azamat
Usein
Как в монге массив обновить у документа?
Массив из ссылок на другие документы*
nefertisu
Antonio
Кто-нибудь может подсказать, возможно ли написать запрос по значению поля объекта в мапе?
{
"a" : {
"1" : {
"b" : 111
},
"2" : {
"b" : 112
},
"3" : {
"b" : 113
}
}
}
Найти все документы, у которых в поле "a" среди значений поля "b" есть значение 112?
$elemMatch не работает, так как тут не List<Object>, а Map<String,Object>
Пробовал всякого рода find({"a.*.b":112}), но не работает
Zaur
ᅠEmil 🇦🇿
Здравствуйте. Подключил БД (Mongo DB Atlas) к проекту (тг бот). Когда запускаю сервер со своего ноута всё работает хорошо, но при запуске проекта через Heroku бот не отправляет сообщения, в которых берутся или отправляются данные в базу. На Mongo Atlas я разрешил вход всем всем IP адресам