kathrynowy 🦊
Как только я добавляю что-то в одну коллекцию, я хочу взять id только что созданного объекта и засетать в ещё одну коллекцию, там у меня массив objectids
kathrynowy 🦊
Понятно, что я могу это запросами в самом контроллере сделать
Nick
разработка на ноде с монгусом?
kathrynowy 🦊
Но может это можно сделать на уровне схемы
kathrynowy 🦊
Да
kathrynowy 🦊
То есть функция у самой схемы
kathrynowy 🦊
После обновления сделай то и то
Nick
Но может это можно сделать на уровне схемы
если я правильно понял, то вам нужны https://mongoosejs.com/docs/middleware.html но я в монгусе не силен, мож кто что поадекватнее подскажет
kathrynowy 🦊
Спасибо, я именно это и искала)
Anonymous
Ребят всем ку. Есть например абстрактный чатик. Например переписка продавца и покупателя во время проведения сделки как на Авито. Эти чатики работают не на вебсокетах, а значит база пойдет обычная. Хорошо ли проявит себя монга в данном кейсе в сравнении с Postgres например?
Anonymous
Тоесть схема: deal_id: 1 "msg": { "id": 1 "sender": "seller", "ts": 2020.09.09 16:00:01, "msg": "text", "sent": true, "received": true }
Anonymous
И отдаю отсортированный результат по таймстампу
Anonymous
Подойдут обе БД, кстати мессенджер Авито на MongoDB. А почему вы разделяете по WebSocket признаку?
Ну если вебсокет, наверное придется Коннект постоянно держать и базу опрашивать нонстопом Но это другой тип чата, как наша переписка в данном чате например
Anonymous
Подойдут обе БД, кстати мессенджер Авито на MongoDB. А почему вы разделяете по WebSocket признаку?
Огонь, спасибо за информацию, осталось коллекцию и индексы спроектировать
Alexander
Ну если вебсокет, наверное придется Коннект постоянно держать и базу опрашивать нонстопом Но это другой тип чата, как наша переписка в данном чате например
Ну нет, обычно Websocket только для стрима новых событий нужен и не более, остальное - это примерно та же схема, что и в обычном кейсе - получить состояние на старте приложения и все
Daniil
Никак, хотя есть какой то пакет mongoose migration, но проще отдельный скрипт написать, который сделает, что нужно
Daniil
Ну если вебсокет, наверное придется Коннект постоянно держать и базу опрашивать нонстопом Но это другой тип чата, как наша переписка в данном чате например
И личные и групповые чаты реализуются не так) пользователь генерирует событие отправки нового сообщения (как через сокет, так и нет), серверная логика по мимо того, что сохраняет это сообщение в базу просто рассылает его всем участникам чата (уже по сокетам)
Anonymous
https://youtube.com/watch?v=4tIS58sQ7Mc - возможно будет полезно
благодарю за годноту, добрый человек
Anonymous
Добрый день! такая ситуация, есть коллекция, там есть поле вида object но он сделан не как DBRef, можно ли обновить и сделать из него DBRef? уже в существующих коллекциях.
Ilya
всем привет! как в схеме можно описать что в поле может быть objectId или '' type: {type: Schema.Types.ObjectId, ref: TypeModel},
Ilya
type: {type: Schema.Types.ObjectId, ref: TypeModel}, вот таким образом он ругается что поле не заполнено
Daniil
У вас поле называется type?
Ilya
да
Daniil
Какая ошибка?
Ilya
vb
Ilya
минутку
Daniil
Только в ref строку нужно передать
Ilya
{"message":{"errors":{"priority":{"stringValue":"\"\"","kind":"ObjectID","value":"","path":"priority","reason":{"stringValue":"\"\"","kind":"ObjectId","value":"","path":"priority","reason":{},"message":"Cast to ObjectId failed for value \"\" at path \"priority\"","name":"CastError"},"message":"Cast to ObjectID failed for value \"\" at path \"priority\"","name":"CastError"},"type":{"stringValue":"\"\"","kind":"ObjectID","value":"","path":"type","reason":{"stringValue":"\"\"","kind":"ObjectId","value":"","path":"type","reason":{},"message":"Cast to ObjectId failed for value \"\" at path \"type\"","name":"CastError"},"message":"Cast to ObjectID failed for value \"\" at path \"type\"","name":"CastError"}},"_message":"Task validation failed","message":"Task validation failed: priority: Cast to ObjectID failed for value \"\" at path \"priority\", type: Cast to ObjectID failed for value \"\" at path \"type\"","name":"ValidationError"},"userMessage":"Не удалось сохранить задачу"}
Daniil
Имя модели, а не саму модель
Daniil
Вы хотите записать в поле помеченное как ObjectId пустую строку
Daniil
Это будет работать если поставить просто тип String
Ilya
без рефа?
Daniil
Или по моему если вместо пустой строки передавать null
Ilya
сейчас попробую
Ilya
да, вы правы) спасибо)
Gopneg
какой-то бредовый вопрос, причем тут страна вообще? кого компания готова брать, того и берет может кто-то учит с нуля, а кто-то тока синьора ждет
Gopneg
правда что ли))))))))))
Gopneg
ты бы лучше пояснил как ты связал страну и уровень знаний для принятия в компанию
Gopneg
ну вот там бы и спросил, раз у них такие стройные теории
Gopneg
тебя это веселит?
Taras
Всем привет пробую сделать свое МЕРН приложение и вот немогу подключится к дбшке вылетает еррорка такая Server error failed to connect to server [tododb-shard-00-02.a9ysd.mongodb.net:27017] on first connect [MongoNetworkError: connection 5 to tododb-shard-00-02.a9ysd.mongodb.net:27017 closed
Taras
Не знаете в чем может быть причина?
Daniil
Daniil
Или открыть доступ отовсюду если он динамический
Taras
Taras
Вот мой файл
Taras
Мне кажется я не так uri там меняю где нужно свои данные ввести
Daniil
Из консоли попробуйте подключится через mongoshell с того же сервера где запускаете приложение
Daniil
Если подключится, то проблема в коде
Taras
Из консоли попробуйте подключится через mongoshell с того же сервера где запускаете приложение
Я просто по видео Владилена смотрю он так делает у него ошибки нету(
Daniil
Если нет, то проблема в доступе к атласу
Taras
А если из шелла буду делать то сейчас запутаюсь думаю)
Daniil
Проверьте что ваш айпи совпадает с тем, что в атласе
Taras
Проверьте что ваш айпи совпадает с тем, что в атласе
Я удалил тот что был и добавил опять свой
Daniil
Сейчас должно заработать
Daniil
Но если айпи динамический то он поменяется через какое то время
Taras
Хмм заработало когда я добавил доступ с любого айпи
Taras
А нет я удалил оставил свой врооде как заработало
Taras
У меня последний вопрос вылетает этот ворнинг хотя я эти параметры прописал (node:43420) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect. (node:43420) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
Taras
Или это нужно где-то на сайте прописывать?
Daniil
Или это нужно где-то на сайте прописывать?
Эти свойства надо добавить к остальным опциям при коннекте
Андрей
telnet на порт да логи ковырять, если с сетью все ок
Андрей
Больше в принципе и делать нечего
Daniil
А на сервер то нельзя зайти просто по ссш ?
Daniil
Посмотреть что там делается
Daniil
Мб монга просто упала и лежит
Daniil
А ограничений на коннект к серверу никаких нет?
yopp
EACCESS это скорее всего проблема на стороне клиента. проверьте что у вас никакие файрволлы не включены
Daniil
Ну тут нередко встречается проблема когда в whitelist кладут динамический айпишник например
Андрей
Винда на сервере?
Андрей
А зачем как бы? 🤨
Андрей
да)
Андрей
В любом случае путь всегда один - проверить процесс в ОС, bind ip в конфиге, телнет на порт, лог СУБД. В вашем случае телнет уже бы не провалился на порт.
𝐃𝐢𝐦𝐚
Привет . Кто модет подсказать с mongoose . У меня есть две модели Chats and Messages. При создании нового Messages мне надо его привязать к Chats Сейчас скину Schema. Спасибо