Mars
Коллеги , подскажите ,пожалуйста ,🙏🏼 все-таки ,а есть ли варианты , чтобы база была в Атласе и доступна для российских пользователей ?
Mars
конечно, через проксирование запросов
Спасибо 🙏🏼 а есть где почитать про это ?
Alexandrr
Спасибо 🙏🏼 а есть где почитать про это ?
https://www.google.com/search?q=proxy+requests+atlas+mongodb
Taras Kosyi (ง•̀o•́)ง
У меня в агрегации: 1. $sort по дате 2. группировка по именам, например $group После этих двух степов массив групп не отсортирован, хотя я думал, что если входящие данные во втором степе будут отсортированы в первом степе, оно автоматически должно быть отсортированным во втором. То есть я получаю вот такое: [ { name: “антон”, invites: [ { …, date: 2022.10.03 }, { …, date: 2022.10.10 } ] }, { name: “саша”, invites: [ { …, date: 2022.12.03 }, { …, date: 2022.10.07 } ] } ] А надо такое: [ { name: “саша”, invites: [ { …, date: 2022.12.03 }, { …, date: 2022.10.07 } ] } , { name: “антон”, invites: [ { …, date: 2022.10.03 }, { …, date: 2022.10.10 } ] }, ] Не подскажите, в чем проблема агреггации? Не хочу второй раз сортировку по новой структуре делать, так как уже нет индексов. Или они есть даже после изминения структуры?
Dmitry
У меня в агрегации: 1. $sort по дате 2. группировка по именам, например $group После этих двух степов массив групп не отсортирован, хотя я думал, что если входящие данные во втором степе будут отсортированы в первом степе, оно автоматически должно быть отсортированным во втором. То есть я получаю вот такое: [ { name: “антон”, invites: [ { …, date: 2022.10.03 }, { …, date: 2022.10.10 } ] }, { name: “саша”, invites: [ { …, date: 2022.12.03 }, { …, date: 2022.10.07 } ] } ] А надо такое: [ { name: “саша”, invites: [ { …, date: 2022.12.03 }, { …, date: 2022.10.07 } ] } , { name: “антон”, invites: [ { …, date: 2022.10.03 }, { …, date: 2022.10.10 } ] }, ] Не подскажите, в чем проблема агреггации? Не хочу второй раз сортировку по новой структуре делать, так как уже нет индексов. Или они есть даже после изминения структуры?
Если изначально сортировка не важна, то её лучше сделать в самом конце т.к. данные в процессе могут снова стать не упорядочными т.к. паралельность и т.д.
Dmitry
Важна 🙁 Значит делать два сорт степа?
Зачем вам первая сортировка, если вы группируете данные?
Taras Kosyi (ง•̀o•́)ง
Зачем вам первая сортировка, если вы группируете данные?
Я хочу иметь отсортированный массив в invites и хочу иметь отсортированные группы
Dmitry
Я хочу иметь отсортированный массив в invites и хочу иметь отсортированные группы
Так сортируйте после группировки т.к. ни кто в один поток это делать на С++ не будет. Иначе БД работали медленно, даже с индексацией
Dmitry
В вашем случае надо будет сделать сортировку по приоритетам т.е. первый параметр это ключ в группе, а второй параметр массив invites
Dmitry
У вас в таблице есть индекс и уникальная запись, вы этим обновлением пытаетесь сделать их 2, поэтому ошибка.
Dmitry
С этим не подскажу т.к. уже пару лет не работал с SQL
Alexandrr
идти в тематический чат по SQL и задавать там эти вопросы
Alexandrr
@wextech
Alexandrr
🌈 Базы Данных @dba_ru @sql_ninja @dbmsdev @dbgeeks @sqlize 👩‍💻 PostgreSQL @pgsql @postgis @pgcodekeeper @postgresql_1c_linux 👩‍💻 SQL Server @sqlcom @mssql_ru 👩‍💻 MySQL и Oracle @mysql_db @ru_mysql @oracle_ru @oracle_dba_ru 👩‍💻 Другие @mongodb_ru @victoriametrics_ru1 @elasticsearch_ru @elk_ru @clickhouse_ru @reindexer @access_chat @tarantoolru @cassandra_ru @ru_scylladb 📣 Подписаться на канал
Тим
Ребят было у кого так вывожу в лог параметры с коллеции там есть параметр "status" захожу в монгокомпас там нет такого ключа в этой же коллекции, да и обновить этот ключ не получается через updateOne (магия)
Тим
в общем компас не видит новую схему модуля куда я добавил параметр "status" и как быть?
Inline ®
здравствуйте как удалить объект в документе пользователя?
Dmitry
здравствуйте как удалить объект в документе пользователя?
Пример документа покажите и что удалить надо
Inline ®
Пример документа покажите и что удалить надо
{ id: 761838, exchanger: { deposit_del_balance: 0, deposit_usdt_balance: 0 } }
Inline ®
удалить нужно "exchanger"
Dmitry
{ id: 761838, exchanger: { deposit_del_balance: 0, deposit_usdt_balance: 0 } }
.findOneAndUpdate({ id: 761838 }, { $unset: { exchanger: 1 }})
Inline ®
console.log(t) возвращает документ пользователя, без изменений
Dmitry
console.log(t) возвращает документ пользователя, без изменений
findOneAndUpdate и ему подобные, возвращают исходный документ
Dmitry
Чтобы вернулся обновленный, надо { new : true } прокинуть в качестве третьего параметра
Inline ®
findOneAndUpdate и ему подобные, возвращают исходный документ
но я проверял через findOne тожн ничего не меняеться
Dmitry
Dmitry
Dmitry
Inline ®
А почему у меня не работает
Inline ®
Прикол
Inline ®
Я mongoose использую, может в нем как-то по-другому нужно?
Dmitry
Я mongoose использую, может в нем как-то по-другому нужно?
У меня на другом проекте тоже есть монгус и там точно также прописывается
Inline ®
Ля
Inline ®
Интересно
Dmitry
Dmitry
А сама схема знает, что данное поле есть?
Dmitry
Dmitry
Dmitry
Dmitry
Inline ®
А нет, знает, из схемы не удалил ещё
Inline ®
Inline ®
у меня вернуло
Inline ®
Что можно ещё попробовать сделать?
Dmitry
Мой опыт подсказыет, что вам надо обвернуть Object в Schema и прописать тип, что это схема и возможно тогда mongoose пропустит
Inline ®
Я ещё когда-то слышал что если задать полю значение undefined то mongo автоматически удаляет это поле
Dmitry
На крайняк в самой схеме user можно прописать Mixed и по пробовать прогнать updateMany
Inline ®
Не помогло
Inline ®
А Mixed?
Пробую
Inline ®
А Mixed?
Работает, огромное спасибо
Dmitry
Работает, огромное спасибо
Из этого, вы должны сделать вывод, что схемы у вас не со всем корректно сделаны
Inline ®
Из этого, вы должны сделать вывод, что схемы у вас не со всем корректно сделаны
Да вроде, все как в примерах, и на Ютубе смотрел так делают
Dmitry
Да вроде, все как в примерах, и на Ютубе смотрел так делают
Если всё было корректно, то mixed не пришлось бы писать
Pavlo
Всем привет, как лучше реализовать версии объектов. Делаем обучающую платформу с курсами. Нужно решить проблему, когда курс уже в продакшене и автор начинает его редактировать. Тогда логично было бы копию курса сделать которую можно редактировать. И здесь вопрос, дублировать объекты, это окей? Или лучше думать о версиях объектов и сохранять разницу между ними?
Pavlo
Копию курса логичнее, идите от бизнес потребности.
А если нужно будет админу показать разницу (последние изменения), как реализовать такое?
Pavlo
Две колонки, подсветить можно diff
как раз интересует как реализовать diff
Alexandrr
как раз интересует как реализовать diff
новый апдейт - полная копия новый курс - полная копия после мерджа, можно удалять апдейт, что бы мусор не копился, но не оригиналы, иначе ссылки поедут когда сравнить - метим расхождения в строках/абзацах, например, используя разделители точки или \n
Alexander
как раз интересует как реализовать diff
Пилить самостоятельно, если стандартные инструменты не подходят. Посмотреть в сторону git, diff, compare. А вообще нужно смотреть контент, что и как меняют.
Pavlo
Спасибо!
El
кто нибудь знает где взять адекватную инфу про составления схем для проверки данных без использования мангуста? Вот это прям полная хрень https://datatracker.ietf.org/doc/html/draft-fge-json-schema-validation-00
El
спасибо, надеюсь смогу разобраться
Nick
спасибо, надеюсь смогу разобраться
планируете схему для монго валидации использовать или в код перед монгусом при приеме данных?
El
планируете схему для монго валидации использовать или в код перед монгусом при приеме данных?
да я хочу без монгуста валидацию сделать, но в доке по монго совсем мало об этом, далее идут ссылки на ресурсы которые ну совсем не поддаются пониманию
Alexandrr
https://json-schema.org/
кстати, гуглил ODM, ничего толкового не вышло из этого. более менее нашёл mongoengine профи советуют писать либо самому, либо не ебать мозги себе и взять обычную реляционку))
El
поэтому и спрашиваю валидацию чего именно хочется сделать. Схема в БД крайне редкая потребность
странно что это редкая потребность, мне кажется это прям основа должна быть
Nick
странно что это редкая потребность, мне кажется это прям основа должна быть
монга как раз про отсутвие схем в БД и всяких лишних валидаций