Alexandrr
У меня по сути получается через id-шники (article_tag где есть article_id и tag_id), это же норм что я так делаю?
https://t.me/mongodb_ru/123307 вот тут уже писал ответы на эту тему, почитай переписку по ссылке и ниже
Мирослав
Привет, можно как-то получить историю операций в mongodb? я использую digitalocean. у бд нашел oplog.rs (так и не понял как использовать). Digitalocean имеет бекап за последние 7 дней. Но я не знаю как получить историю/логи
Мирослав
для чего оно вам?
узнать с какого времени делать бекап)
Мирослав
ну и что стало причиной очищения всех документов в коллекции
Nick
узнать с какого времени делать бекап)
а как вам поможет оплог? и вообще история операций
Nick
ну и что стало причиной очищения всех документов в коллекции
https://www.mongodb.com/docs/manual/core/auditing/ но это про ентерпрайз версию, ну и в облаках думаю есть. Если хотите сами собират ьинфомрацию, то гляньте на https://www.mongodb.com/docs/manual/changeStreams/ и их куда сохраняйте сами для последующей обработке. время хранения данных в оплоге по инфе тут https://www.mongodb.com/docs/manual/core/replica-set-oplog/
Nick
узнать с какого времени делать бекап)
и тут похоже имелось в виду "восстанавливать", как правило предыдущий бэкап с момента как заметили проблему. Проблемы через мониторинг определяются на уровне приложения, а на уровне БД можно разве что алерты повесить на резкое изменение количества документов, но это все уже кастомное будет
Mark
Подскажите, у меня есть 2 коллекции, Адреса и Брони. У Брони есть 2 числовых поля и адрес айди. Мне нужно получить список адресов, у которых количество броней было бы равно 0 с фильтром по 2 числовым полям.
Mark
1. достаём документы по фильтрованным полям 2. потом проверяем документы на наличие или отсутствие броней
addresses: [ { _id: 1, }, { _id: 2, } ] dates: [ { addressId: 1, start: 100, end: 200 }, { addressId: 2, start: 50, end: 200 } ] // start > 50, end < 300 // Result: addresses: [ { _id: 1, } ] Вот пример
Mark
почему даты и адреса отдельно существуют?
Ну есть список адресов, есть список дат, нужно получить адреса, в которых нет дат с нужным условием
Alexandrr
Ну есть список адресов, есть список дат, нужно получить адреса, в которых нет дат с нужным условием
так напиши запрос и получи, в чем проблема то? как? - выше порядок действий описал, этого достаточно. код написать за тебя? - нет этого делать не буду
Scorn
чаще всего во всех чатах вижу одно имя: Mark))) во всех подряд) с утра до ночи. упорный парень
Alexandrr
чаще всего во всех чатах вижу одно имя: Mark))) во всех подряд) с утра до ночи. упорный парень
ну молодец, если это так действительно, да, значит учится чему-то полезному
Mark
так напиши запрос и получи, в чем проблема то? как? - выше порядок действий описал, этого достаточно. код написать за тебя? - нет этого делать не буду
10 сообщений, а пользы 0. Сомневаюсь, что ты мне что то толковое бы написал, особено после этого сообщения) https://t.me/mongodb_ru/125139
Mark
Ох уж эти синьоры помидоры в чатах
Alexandrr
Пока решил так
если к обоим действиям не применять лимит, то в результате 1 действия может вернуться "много записей", что чревато
Alexandrr
лимит стоит, это урезанный код без воды
у тебя 2 операции: 1 в матче вернего уровня 2 в пайплайне. в пайплайн может много вернуться, если я правильно понял конструкцию
Mark
в пайплайне димит 3 стоит
Scorn
Только вкатываюсь в монго. Подскажите, пожалуйста, эффективно ли собирать обновляемую статистику (например, "лучшие статьи", для выноса в топ на отдельной странице) из разных коллекций в одну обновляемую с помощью реляционных баз или nosql тоже неплохо справляется ?
Alexandrr
Только вкатываюсь в монго. Подскажите, пожалуйста, эффективно ли собирать обновляемую статистику (например, "лучшие статьи", для выноса в топ на отдельной странице) из разных коллекций в одну обновляемую с помощью реляционных баз или nosql тоже неплохо справляется ?
смотря какая сложность запросов. если пытаться собрать всё и обновить в 1 запросе, то скорее всего на уровне администрирования самого запроса будет много проблем то есть, получится раза в 4 больше, чем выше Марк прислал скрин
Alexandrr
Ну, т.е. делать это, например, в низкозагруженное время раз в сутки - адекватное решение ?
ну как и в реляционках тут вопрос больше не к нагрузке, а к поддерживаемости таких сложных запросов
Scorn
Понял. Спасибо за ответ
Alexandrr
Понял. Спасибо за ответ
как со стороны ограничений самой СУБД, так и со стороны написания самого запроса. если прод требует частых изменений логики запроса, проблем будет больше, чем в реляционной
Alexandrr
Не, логика статична, просто заранее адекватно структуру организовать потребуется
да. и скорее всего придётся много тестов проводить, что бы понять оптимальность по времени выполнения и т.д. разница тут будет ещё в том, что реляционная позволяет решить эту задачу 1 или 2 максимум способами а тут вариантов больше гораздо, разница в производительности и количестве запросов
Scorn
да. и скорее всего придётся много тестов проводить, что бы понять оптимальность по времени выполнения и т.д. разница тут будет ещё в том, что реляционная позволяет решить эту задачу 1 или 2 максимум способами а тут вариантов больше гораздо, разница в производительности и количестве запросов
Так же вопрос по graphql Сегодня сделал crud на нем под монго... Возник вопрос по поводу всего сделанного: а нужна ли вообще эта прослойка и, если да, то что это нам даёт, кроме дополнительной либы + *как мне показалось* какое-то "типоудобство" в проектировании - в проекте?
Scorn
Я может реально не понимаю, но зачем graphql вообще? Планирую теперь без него попробовать. Но в целом - какое-то "беспонятийное состояние" происходящего осталось от этой забавы
Alexandrr
Я может реально не понимаю, но зачем graphql вообще? Планирую теперь без него попробовать. Но в целом - какое-то "беспонятийное состояние" происходящего осталось от этой забавы
тут лучше обратиться к старому доброму гуглу, например сходу нашёл это: https://habr.com/ru/post/326986/ я ж не знаю, какие задачи в проекте, что планируется в будущем и ещё 100500 вопросов
pvlmrzv
Всем привет! Всем привет! Помогите прояснить ситуацию с индексами. Вот я сделал комбинированный идекс на три поля. Поможет ли он запросу фильтра по двум полям из индекса?
Viktar
Лучший вариант посмотреть explain
pvlmrzv
Важно понимать на каких местах стоят в индексе эти поля
Есть прочитать про это? не могу нагуглить.
Viktar
https://www.mongodb.com/docs/manual/reference/command/explain/
Alexey
(Пардон за подъём старой темы :) )
Alexander
Всем привет! Всем привет! Помогите прояснить ситуацию с индексами. Вот я сделал комбинированный идекс на три поля. Поможет ли он запросу фильтра по двум полям из индекса?
Поможет, но только если из этих двух полей одно или два образуют префикс pattern key индекса. К примеру, индекс {a: 1, b : 1, C: 1} помогает с запросами в которых есть a, b и c, либо a и b, либо a
Alexander
Я может реально не понимаю, но зачем graphql вообще? Планирую теперь без него попробовать. Но в целом - какое-то "беспонятийное состояние" происходящего осталось от этой забавы
К примеру, помогает в Serverless, типа Aws lambda, поднимать connection каждый раз слишком дорого. Или, если не хочется тащить зависимость в виде драйвера, а то просто нет драйвера для используемого языка. Но если не Serverless приложение и есть драйвер для языка, проще и дешевле использовать драйвер.
Andrey
Насколько важен порядок полей в индексе по нескольким полям. Условно если, первое место надо ставить поле более с уникальным значением, потом менее и менее. Если да, то при запросе также строить запрос?
Viktar
Насколько важен порядок полей в индексе по нескольким полям. Условно если, первое место надо ставить поле более с уникальным значением, потом менее и менее. Если да, то при запросе также строить запрос?
Не важен в запросе. В индексе все как вы описали. Но проверить не помешает. У меня были кейсы, когда монга использовала индекс, не тот который я ожидал.
dima shumov
Насколько важен порядок полей в индексе по нескольким полям. Условно если, первое место надо ставить поле более с уникальным значением, потом менее и менее. Если да, то при запросе также строить запрос?
Вопрос селективности полей. Не гарантирую, что это принципиальный аспект в nosql и монге в частности, но, например, тот же оракл учитывает этот фактор, что кажется логически обоснованным способом оптимизации запросов и в иных бд
Constantin
Плюсаните кто деплоил бэк node Js + mongo db на azure
Дима
Подскажите, пожалуйста. У меня в схеме есть переменная с типом Object. В ней хранятся переменные с числовыми значениями. Как можно в схеме задать, чтобы все значения переменных были типа Number?
Дима
При этом не указывая все переменные этого объекта
Дима
в Object хранятся только числа?
Хранится это: { знач1: число, знач2: число } При операциях сохраняется число как текст, хочу задать чтобы все значения переменных были числовыми
Дима
так поменяйте object на класс, в чем проблема?
Проблема в том, что я не хочу перечислять все переменные, их много и они постепенно добавляются
Дима
То есть хочу задать единый стандарт для всех переменных этого объекта
Дима
Так можно?
Дима
Ну эт как-то не очень
Vladyslav
Можно пример?
я не знаю, какой у вас язык бека. А так, зачем пример? у вас же что-то кроме object`a, все остальное хранится ж нормально в классе?
Vladyslav
NodeJS
ну вот, как вы создали схему user, так и создайте под финансирование. Бтв, дико не рекомендую юзать разные языки в названиях свойств
Дима
ну вот, как вы создали схему user, так и создайте под финансирование. Бтв, дико не рекомендую юзать разные языки в названиях свойств
да это я для эксперимента решил попробовать потому что сильно большой объем слов в этой бд, а так на англ называю
Vladyslav
да это я для эксперимента решил попробовать потому что сильно большой объем слов в этой бд, а так на англ называю
jobs: {type:[Job]} https://stackoverflow.com/questions/70184092/use-interface-as-type-of-field-in-mongoose-schema вроде это вам и нужно, простое свойство, которое interface\class
Constantin
Приветствую! Есть такой простой блог с постами. Картинки к постам хранятся в монго дб как base 64. При прокрутки страницы количество запросов на blob файлы всегда растет. Подскажите это вообще нормальное поведение в браузере и в чем проблема? Благодарю!
Constantin
Constantin
Constantin
Нет, одни и те же. На странице всего лишь пару постов. Прокручивая вниз или вверх, всегда идёт запрос на blob
Constantin
Вроде как это норм практика хранить картинки как base 64 в базе данных, но почему так происходит хз