Andrey K.
а монговский GridFS это разве не оно ?
Andrey K.
Vitya
Всем привет. Подскажите курс по монго какой посмотреть. Более-менее знаю sql, с nosql не работал никогда, нужно по работе Спасибо !!
Nikola
Привет всем. Подскажите пожалуйста, если у меня есть массив users в каждом документе таблицы. У каждого юзера есть допустим customId. Как мне конвертнуть customId в строку?
Vitya
а есть что толковое на примете?
Shuliar
Я учил. Мне норм было.. Если есть что-то лучше, то дайте ссылку.
Андрей
Что такое изучение монги? Вы хоть указывайте - вам код писать или администрировать. Это 2 противоположные науки.
Андрей
Для DBA начать с оф. тренингов самого вендора - вполне себе отлично будет. Дальше всё равно необходимо ориентироваться в линухе на уровне администратора и уметь читать тех. документацию на инглише.
Nikola
https://www.mongodb.com/docs/manual/reference/operator/aggregation/toString/
да, я это читал, но я не совсем понимаю как мне обратиться к итерируемому элементу
Nikola
если я сделаю там { $set: { 'users.$[].customId': '123' } } то customId будет заменен просто на строку 123, а как мне именно обратиться к элементу я хз
Nikola
строку из кода?
Nikola
имеете в виду, что код написать, который будет обращаться к бд и апдейтить нужные свойства? просто я думал что можно как-то средствами бд и запросами такое провернуть
Nikola
нужно конвертировать значение customId в строку
Nikola
проапдейтить его
Nikola
есть массив users = [{ customId: 123 }, { customId: 124 }] нужно сделать чтоб стало users = [{ customId: '123' }, { customId: '124' }]
Nick
@radonichn берете апдейт с агрегацией, в ней с помощью $map уже меняете объекты https://www.mongodb.com/docs/manual/reference/operator/aggregation/map/
Nikola
т.е. мне надо выгрузить запросы с аггрегации и потом заменить этими данными те, что сейчас в бд лежат?
Nikola
или как это правильнее сделать?
Alexander
Для начинающих был классный курс M001, который зачем-то заменили на гораздо менее удобоваримый. Но более продвинутые курсы все ещё нормальные там
Nikola
https://www.mongodb.com/docs/manual/tutorial/update-documents-with-aggregation-pipeline/
для меня это было неочевидно, но суть в том, что чтоб заюзать аггрегации для апдейта коллекции, надо использовать квадратные скобки — типа не updateOne({}, {}), а updateOne({}, [])
Alexander
Он больше недоступен. Наверняка где-то ещё валяется, но где точно не знаю. Курс звался M001 MongoDB Basics with Yulia Genkina
Alexander
К сожалению, Юля ушла из компании в другую, а качество курса сильно зависит от инструктора, который его разрабатывает
Alexander
Из хороших курсов доступны https://learn.mongodb.com/learn/course/m103-basic-cluster-administration/lesson-0-introduction-setup/learn?client=customer
Alexander
https://learn.mongodb.com/learn/course/m121-the-mongodb-aggregation-framework
Alexander
https://learn.mongodb.com/learn/course/m320-mongodb-data-modeling
Alexander
https://learn.mongodb.com/courses/m100-mongodb-for-sql-pros
Alexander
https://learn.mongodb.com/learn/course/m201-mongodb-performance
🕊Emocean🕊
Всех приветствую, может кто помочь с агрегированием
🕊Emocean🕊
Всех приветствую, может кто помочь с агрегированием
первый джсон это запрос, второй как должен выглядеть ответ. Вопрос таков , как брать начало каждого месяца между двумя заданными датами?
Nick
первый джсон это запрос, второй как должен выглядеть ответ. Вопрос таков , как брать начало каждого месяца между двумя заданными датами?
берете первую дату, берете месяц из нее, потом первый день месяца, потом прибавляете по одному месяцу до достижения второй границы - получаете массив начал месяцев
Vitya
Привет. Подскажите как обновить содержимое колекции в компасе, если ввел данные через консоль? Кнопка refresh db возле баз даных слева не помогает
Damir
Привет. Подскажите как обновить содержимое колекции в компасе, если ввел данные через консоль? Кнопка refresh db возле баз даных слева не помогает
Здравствуйте, отсортируйте по дате в обратном порядке если данные типа время имеются, в компасе показаны первые 20 доков по умолчанию, скорее всего у вас их больше 20)
🕊Emocean🕊
Может кто помочь, с квери? никак не пойму как правильно группировать в монго
🕊Emocean🕊
приходит такой результат
🕊Emocean🕊
🕊Emocean🕊
а нужен вот такой: {"dataset": [5906586, 5515874, 5889803, 6092634], "labels": ["2022-09-01T00:00:00", "2022-10-01T00:00:00", "2022-11-01T00:00:00", "2022-12-01T00:00:00"]}
Hunter
Можно слушать изменения в одной коллекции с помощью Change Streams и писать в другую, когда в первой что-то поменялось. https://www.mongodb.com/docs/manual/changeStreams/
якщо комусь цікааво, то так вийшло export const returnRandomTraining = async (): Promise<TrainingType[]> => { const result = await TrainingSchema.aggregate([{ $sample: { size: 1 } }]); return await TrainingSchema.populate(result, [ { path: 'warmUp.trainingSessions.exercise', model: ExerciseSchema }, { path: 'mainWork.trainingSessions.exercise', model: ExerciseSchema } ]); } а в моделькі я прописав так поле exercise: { type: Schema.Types.ObjectId, ref: 'Exercises', required: true }, Нарахунок продуктивності думаю не дуже, з sql було б краще
🅻
С чего начать изучение монги и для каких сервисов её использование максимальный профит доставляет? Сейчас имею знания SQL, сложно ли будет привыкать к MDB? (Знаю банальный вопрос, но просто хочу сменить профиль работы, в печёнках уже SQL)
🅻
сложно. тут совсем другой принцип
Я просто заметил, что популярность монги возросла в рф и думаю переквалифицироваться
🅻
Я DBA'шник уже где-то года два и юзаю лишь MSSQL, изредка PgSQL
🅻
PG как с OLAP кубами работает?
Не приходилось работать с ними 😅
🅻
У меня упор просто был в хранимки, бэкап, архитектуру и безопасность, а не аналитику
Ivan
Не приходилось работать с ними 😅
ну монга тебя удивит можешь еще кликхаус посмотреть - там вообще болото
Ян 🌙
Всем привет, скачал новую монгоДБ, занес туда данные со старой, и начало работать не корректно, а именно данные с задержкой достаются, раньше все норм было, а сейчас достаю что-то - сперва пустое, а через секунд 10 только появляется.. Как можно исправить?
Ян 🌙
Индексов нет походу)
что за индексы?
Damir
что за индексы?
В логах есть COLLSCAN?
Ян 🌙
В логах есть COLLSCAN?
не знаю что это
Ян 🌙
у меня использовался _id может в этом причина? потому что, там, где я вытаскиваю данные без _id.. работает нормально, а где по _id - вытаскиваются с задержкой
Damir
Давай в ЛС
Ян 🌙
Я короче понял, у меня данные импортируются не правильно, когда делал экспорт, делал в тип csv, а там были массивы, и при импорте они стали строчным типом.. Как можно это решить? преобразовать или еще что?
Ян 🌙
mongoimport --db=krankykranes --type=csv --headerline --useArrayIndexFields --file=tags.csv Я нашел вот это, ток не понимаю куда вводить нужно)
Alexandrr
Я DBA'шник уже где-то года два и юзаю лишь MSSQL, изредка PgSQL
пыга популярнее в десятки раз, чем остальной хлам, интересно, какой ты дба тогда?🤔 носкул полезен работой по сети, готовые объекты без трансформации и доп логики аппы
Alexander
mongoimport --db=krankykranes --type=csv --headerline --useArrayIndexFields --file=tags.csv Я нашел вот это, ток не понимаю куда вводить нужно)
Для переноса данных лучше использовать mongodump/mongorestore, там используется родной BSON для хранения данных и информация об индексах сохраняется. mongoexport/mongoimport используются больше для выгрузки/загрузки данных при работе с внешними приложениями. И даже в этом случае лучше использовать JSON, который способен сохранять структуру вложенных документов и массивов, а не "плоский" CSV, который плохо подходит для документных баз данных.
NO WAR!
Всем привет. Есть коллекция с данными для определенной сущности на определенный момент времени. Данные хранятся в виде отдельных документов. В каждом документе данных есть время добавления документа в коллекцию. Разумеется в коллекции в каждом документе обозначена сущность и поэтому легко можно выбрать данные по сущности. Вопрос. Если я при помощи find найду все документы по сущности, в полученном массиве гарантируется порядок элементов в порядке их добавления в коллекцию? Как в принципе правильно организовать хранение таких данных в Mongo? Хранить в отдельных документах или организовать хранение документов в массивах, где порядок будет гарантирован?
NO WAR!
выбирай с сортировкой
Т.е. хранить в массивах?
NO WAR!
нет
Понял. Сортировать при выборке.
NO WAR!
выбирай с сортировкой
Но вопрос в том, что мне не нужно их сортировать, если я получу их в том же порядке, в котором они были добавлены в коллекцию. Я собственно и спрашиваю потому, что хочу сэкономить на сортировке. И мой вопрос сводится к тому, нужны ли дополнительные усилия (организация в массив) чтобы гарантировать сохранение того порядка в котором они были добавлены. Надеюсь, что кто-то знающий скажет: "Порядок точно сохранится и не нужно тратить время на организацию массива". 😀
a
Возможно ли вообще в монго 6.0 поменять оунера директории dbPath на другого юзера отличный от root. Я создал нового юзера. Сделал его оунером. А на остальных закрыл доступ на запись. И теперь монго не стартовывает через systemctl