𝐃𝐢𝐦𝐚
𝐃𝐢𝐦𝐚
Daniil
А в чем вопрос?
Daniil
Вам известен идентификатор чата когда пользователь отправляет сообщение, когда делаете запись сообщения в базу добавляйте помимо всего прочего идентификатор чата в поле chat
Daniil
В чате не нужно хранить идентификаторы всех сообщений
Daniil
Достаточно идентификатора чата в самом сообщении
𝐃𝐢𝐦𝐚
В чате не нужно хранить идентификаторы всех сообщений
А как мне тогда зделать populate('message') при выборке чата ?
Daniil
А как мне тогда зделать populate('message') при выборке чата ?
Лучше этого не делать вообще, проще тогда хранить все сообщения в самом документе чата
Daniil
Я не знаю вашей задачи, но обычно тащить все сообщения вместе с чатом плохая идея
Daniil
Тем более когда чатов несколько
𝐃𝐢𝐦𝐚
А в чем вопрос?
я только пробую mongo db/ сама суть что мне надо при создании нового message связать его с chat. Чтобы потом при выборке чата получить все его сообщения
Daniil
Для учебной задачи схема конечно может быть как ваша
𝐃𝐢𝐦𝐚
Я не знаю вашей задачи, но обычно тащить все сообщения вместе с чатом плохая идея
а какже лишние запросы , если мы отдельно вытаскиваем чаты а потом по id идем забирать messages. я еще думаю как mysql , это направильно , но не могу еще перестроится
𝐃𝐢𝐦𝐚
Можеш открыть пожалуйста глаза , как ето делать правильно
𝐃𝐢𝐦𝐚
спасибо
Daniil
Обычно для визуального представления на клиенте достаточно списка чатов и последнего сообщения у каждого из них
Daniil
При заходе в конкретный чат уже запрашиваются сообщения конкретного чата, лучше с использованием пагинации
𝐃𝐢𝐦𝐚
Когда вы делаете populate mongoose делает отдельный запрос в другую коллекцию
да, но они идет в 1 коннекте , а если по отдельности все брать то 2 запроса два коннекта
Daniil
да, но они идет в 1 коннекте , а если по отдельности все брать то 2 запроса два коннекта
Соединение с БД должно устанавливаться при старте приложения и поддерживаться все время пока оно использует базу данных
Daniil
И обычно используется не одно соединение, а целый connection pool
Daniil
Т.е. несколько соединений, что позволяет отправлять запросы параллельно
Daniil
Не нужно постоянно открывать/закрывать соединение, это очень дорогая операция
Daniil
Не вижу необходимости делать эти запросы в рамках транзакции
NCR
Товарищи, есть 2 коллекции mongodb В одном лежат отправленные письма, в другом - принятые письма У них есть даты отправки и получения соответственно Подскажите пожалуйста, как их поженить для отображения в виде "чата"?
NCR
Пришёл к тому, что map/foreach/filter никто не отменял
Roman
Если в схеме монгуса не указать require а только тип, то это поле будеть необязательное то есть require: false?
Valeriy
добрый, есть вопрос по конфигам. Есть ли возможность юзать два разных кластера в одном приложении с одним конфигом. При этом иметь возможность моделям назначать какой кластер использовать, что то типа: store_in collection: 'activeadmin_users', database: name_cluster пример конфига: development: clients: admindb: uri: mongodb+srv://admindb_user:admindb_password@admin_cluster/admin_db?retryWrites=true&w=majority options: server_selection_timeout: 5 maindb: uri: mongodb+srv://maindb_user:maindb_password@maindb_cluster/maindb?retryWrites=true&w=majority Приложение: Rails 5, MongoId 6, Ruby 2.6
Сергей
Сергей
Аха, монга на бирже торгуется)
Сергей
Why not?)
Not bad)
Daniil
Аха, монга на бирже торгуется)
и весьма неплохо за последние пять лет
Konstantin
Сергей
Добрый день блема есть
Сергей
Сергей
chema user но при регистрации не все поля заполняются
Сергей
schema написана правильно ли?
Daniil
если не все поля заполняются значит не все поля передаются корректно
Сергей
да
Спасибо ошибка на беке была
Сергей
забыл поле name вписать в .pthf
Сергей
где хорошая русская документация к mongo?
inqfen
>хорошая >русская >it
VasiliyIT
где хорошая русская документация к mongo?
Зачем тебе русская, хоть бы просто была хорошая и то за радость
Сергей
++
Konstantin
Немного глупый вопрос, нужно ли создавать индекс по ключу "_id" или монга итак автоматически будет по нему индексировать?
Daniil
++
Официальная документация на английском написана очень простым языком
Daniil
Если н знаете английского, то просто переводите страницу через переводчик
Daniyar
ребят, пытаюсь обновить данные в коллекции через robo 3t, вытаскивает ошибку "Error: the update operation document must contain atomic operators robo 3t": db.getCollection('products').updateMany({ "mode": {$in: ["parent_subproduct", "module", "simple"]}}, {"materials" : []}) ...в чем может быть проблема? Может ли быть то что поле "materials" нет в доках?
Daniyar
$set
ага.. все получилось.. спасибо)
Archakov
В чём прикол, почему children не отображается как массив объектов?
Archakov
Archakov
Leonid
Это рекурсивная схема? Коммент содержит другие коменты или я не так понял.
Andrew
Всем привет, подскажите, пожалуйста, от чего может возникать такая ошибка: pymongo.errors.ConfigurationError: query() got an unexpected keyword argument 'lifetime', использую mongodb atlas
Andrew
Вы используете параметр lifetime там где он не предусмотрен
В том и проблема, что я его не использую нигде. Вот полный трейсбек, если это поможет: https://paste.ubuntu.com/p/36bW4Zvy6b/
Andrew
Версии dnspython, pymongo, motor последние...
Александр
motor не всегда использует последнюю Pymongo
🖤
Привет. Подскажите такое: я в коде создаю Datetime объект, сохраняю его в монгу через mongoose, и в монге оно отображается насколько я понимаю как приведённое к UTC, то есть появляется разница в часах. И загвоздка вот в чём: текст даты, с которой я создаю дату, она в таймзоне москвы, у меня таймзона владивостока, а в JS, которым я всё это делаю, в DateTime объекте нет часовых поясов вовсе, и я немного в затруднении, где мне подправить код? UPD1: Предполагаю, что можно решить на уровне mongoose вот таким пакетиком mongoose-timezone UPD2: ... но у него, увы, нет поддержки insertMany, которую я активно использую в коде. Попробую выпилить.
Daniil
В js тоже есть таймзона у объекта если что, увидеть ее можно вызвав метод toISOString
Daniil
С датами на сервере проще всего работать в UTC
🖤
А какая вам разница что отображается визуально?
Оно записалось с ошибкой. Как я написал, дата на моей стороне сгенерировалась как Владивостокская, а не московская. Я не могу просто в скрипте написать +7 часов, потому что я не знаю, где я его запущу завтра. toISOString сгенерирует таймзону на основании окружения запуска, однако вы её у объекта явно указать не можете при создании.
🖤
Хммм, наверное действительно стоит вручную приводить к UTC, ведь скрипт то я запускаю с разных мест, а даты генерируются только с московской тз. Буду тогда прибавлять 3 часа при создании .
Daniil
Где у вас расположен сервер?
🖤
Где у вас расположен сервер?
Где впску поднял, там и расположился.
Daniil
Где впску поднял, там и расположился.
Видимо на сервере московское время
🖤
Нет, не видимо. У меня есть данные, с которых я генерирую даты. Оно московское, это мне известно. Скрипт я тестирую у себя локально, у меня время владивостокское. Собственно, и записалось потому непонятно что.