El
монга как раз про отсутвие схем в БД и всяких лишних валидаций
согласен, но хочется как то привести все к общему порядку, видимо мозг цепляется за sql)))
Nick
согласен, но хочется как то привести все к общему порядку, видимо мозг цепляется за sql)))
очень заметно, выкидывайте это хотение, монга отвечает только за хранение данных, а форматы, консистентность и т.п. - ответственность кода который с ней работает
Dmitry
монга как раз про отсутвие схем в БД и всяких лишних валидаций
У нас на одном проекте без mongoose было несколько разработчиков, они очень хорошо написали код, что получился винегрет и бд падала в среднем каждые 3 месяца
El
у меня еще вопрос, я пока еще в процессе разбора, у монго есть механизм, при котором удалив сущность удаляются автоматически все зависимости? Или это надо будет делать вручную?
Nick
наличие схемы в монге имеет смысл только когда есть много разных сервисов/скриптов/пользователей, которые потенциально могут попортить данные и не возможности проконтролировать что код везде работает с одними и теми же форматами
El
спасибо за помощь, возможно вернусь скоро с новыми вопросами)
O.
Всем привет! MongoDB 4.2.x Foreign Pipeline видимо с $expr/$eq без индексов работают(( Вот такого рода конструкции: $lookup: { from: 'operations', let: { userId: '$userId', status: 1, type: 'in' }, pipeline: [ { $match: { $expr: { $and: [ { $eq: ['$owner', '$$userId'] }, { $eq: ['$type', '$$type'] }, { $eq: ['$status', '$$status'] } ] } } } ], as: 'operationUsers' } Насколько понял в 5.x.x версии починили данный момент: https://www.mongodb.com/docs/rapid/release-notes/5.0/#-expr-operator--comparison-operators-use-indexes Есть у кого-нибудь понимание, насколько сильный буст произошел? Может был опыт, использовать pipeline с $expr и $eq было 30 сек. на 4.2.x Переехали на MongoDB 5.x.x стало 2 сек.
Nick
спасибо за помощь, возможно вернусь скоро с новыми вопросами)
а по схеме еще можете поискать любые туториалы по json схемам, главное обращайте внимание что версия draft-04 должна быть
O.
На 4.2.x .explain результата по $lookup не дает еще((
O.
Первично думал на всякие разные моменты Может запросы сами по себе кривые Нашел тикеты в JIRA у монги Там все тыкают в 5.x.x монгу Идите туда, там все хорошо
O.
смысл есть в любом случае, 4.2 скоро перестанет поддерживаться
Да понятное дело Бенчмаркинг и отзыв чей-нибудь бы услышать Может быть опыт
Nick
Нужных userIds порядка 120к (выше $lookup есть матчинг и там 120к документов) В operations схеме порядка 30 миллионов документов
120k много, супер быстро за милисеки врятли получится. А индекс по трем полям которые матчатся в operations дадут максимальный прирост
O.
120k много, супер быстро за милисеки врятли получится. А индекс по трем полям которые матчатся в operations дадут максимальный прирост
Речь про MS даже не стоит (хотя было бы идеально) Сейчас 1m занимает запрос Хотелось бы на 20-30sec. выйти как минимум
O.
Ладно Думаю надо двигаться в сторону 5.x.x Да и плюшек там много
Nick
Ладно Думаю надо двигаться в сторону 5.x.x Да и плюшек там много
отпишите потом как показало себя на пром данных
Its
При сохранении пользователя у меня создаются все поля кроме personData, почему так? Хотя я задаю ему только username и password
Nick
При сохранении пользователя у меня создаются все поля кроме personData, почему так? Хотя я задаю ему только username и password
массивы имеют дефолтное значение Arrays are special because they implicitly have a default value of [] (empty array).
El
ребят уникальное поле как то можно создать в документах без использования индекса или нет? Например эмейлы пользователей. Спасибо.
Dmitry
А так надеятся на чудо и перед сохранением делать findOne
El
Понял спасибо
George
Всем привет, как можно сделать поиск по именам полей? (не значениям)
George
поподробней опиши что надо
Короткий пример, есть много записей вида: https://pastebin.com/cVpZ2xXp Т.е с уникальными названиями полей, а значение в которых просто тип поля. и мне нужно делать поиск по именам(ключам) полей
Nick
Короткий пример, есть много записей вида: https://pastebin.com/cVpZ2xXp Т.е с уникальными названиями полей, а значение в которых просто тип поля. и мне нужно делать поиск по именам(ключам) полей
без знания названия поля сделать быстрое решение не получится. Если задача разовая то можно скомбинировать $objectToArray с последущей фильтрацией по значению поля
Nick
вообще неудачное решение
George
Приходит массив имен полей, например: ["emailsed", "cityz" итд] нужно конкретно эти поля найти в mongodb и вернуть id записи которая подошла по названиям всех полей в монго
George
Значения полей не важны, так как содержат просто тип поля
Nick
подобное только через $objectToArray можно провернуть, но на постоянку это медленно будет. Если есть возможность то стоит перестроить схему и хотя бы собирать массив с названиями полей, и еще лучше хешить этот массив и искать по хешу
George
Возможность перестроить есть) А как сделать эталонно можно?)
George
я просто монго только сегодня скачал ☺️😁 А все сделать нужно уже завтра
George
Спасибо админу за помощь в лс ))
Its
массивы имеют дефолтное значение Arrays are special because they implicitly have a default value of [] (empty array).
А как задать тип если я хочу сделать массив с массивами объектов?
Игорь
А так надеятся на чудо и перед сохранением делать findOne
Как вариант upsert ещё можно делать. Но не будет работать при транзакциях на несколько коллекций
Dmitry
Как вариант upsert ещё можно делать. Но не будет работать при транзакциях на несколько коллекций
На сколько помню, то это используется в update и он нужен, чтобы вставить документ, если по условиям не найден
Игорь
На сколько помню, то это используется в update и он нужен, чтобы вставить документ, если по условиям не найден
Этим можно пользоваться как гарантия уникальности. Делать запрос с upsert. В запросе две части. Одна обновляет документ (в ней ничего не писать), вторая вставляет, если отсутствует документ. В результате проверять кол-во вставленных/изменённых документов
Eugene
Привет, Как я могу подключться к другой датабазе, по дефолту меня VSC extension подключает к test. если я делаю use <myDatabase> , то все равно все CRUD requests адресуются в Test
Eugene
Все, больше не актуально.
George
Всем привет, в монго есть какие-то штуки которые восстанавливают коллекции? я просто удаляю полностью контейнер + вольюмы + образ, пересобираю контейнер монго с нуля.... а внутри уже лежат старые коллекции, ппц(
George
ну монго собирается из официального образа 🤔
George
не знаю почему... помогла перезагрузка
George
А как сделать что бы при поиске коллекции, монго отдавал результат только если все поля коллекции указаны в запросе?
Its
Всем привет
Its
Почему мне выдаёт предыдущее значение orderList а не обновленное? Как это исправить?
Dmitry
В качестве третьего параметра
Its
Спасибо
Дима
Подскажите, пожалуйста, можно ли в монго использовать переменные на русском языке?
Дима
Нафига?
Потому что я не хочу использовать английский язык
Дима
Можно или нет?
Dmitry
Можно или нет?
https://yopta.space/
Дима
https://yopta.space/
Соболезную вам...
Mikhail
Соболезную вам...
Ну попробуй на русском создать переменную. Это было бы быстрее чем спрашивать в этом чате.
Mable
Всем привет, можно ли как то использовать mongo db Atlas в России ?
Nick
Всем привет, можно ли как то использовать mongo db Atlas в России ?
Через впн к сайту вполне, сами серваки доступны в зависимости от того где разворачивается инстанс как и на авсе. Вопрос только в том как денег закидывать, но думаю при желании можно осуществить
Mable
Понял, спасибо
Alexandrr
Подскажите, пожалуйста, можно ли в монго использовать переменные на русском языке?
могу пример скинуть, китайцы написали API на китайском названия ключей, то же самое может быть и тут
Alexandrr
Alexandrr
@yatoba
Alexandrr
потом такая хуйня получается😅
Mark
Пхаххаха
Yury
Можно ли выполнить полнотекстовый поиск после агрегации с lookup? Просто у меня в документе хранятся Id, которые ссылаются на другие элементы и у этих элементов есть поля name, по которым хотелось бы тоже чтобы поиск был