Diego
но на самом деле странно что модели ролей имеют разный вид
Может не правильно объяснил. У меня есть учитель и ученик. Для них часть полей общая. Вот и думаю, сделать одну общую модель Юзер и вопрос, как обозначать роль для юзера. Или просто сделать две разные модели Ученик и Учитель
Nick
идите от бизнес сущностей - ученики и учителя пересекаться не могут
Nick
значит разные модели и разные коллекции
Vladislav
Здраствуйте подскажите как получить данные сделал метод get и внизу высвечивает ошибку.
Kenan
Здраствуйте подскажите как получить данные сделал метод get и внизу высвечивает ошибку.
у find нету коллбэка + он возвращает курсор, нужно переделать на это .find({}).toArray(твой кб)
Vladislav
Kenan
.toArray(function....)
Vladislav
Zaur
господа, подскажите как на Debian 8 установить монгу? mongodb-org : Depends: mongodb-org-shell but it is not going to be installed Depends: mongodb-org-server but it is not going to be installed Depends: mongodb-org-mongos but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Joe
господа, подскажите как на Debian 8 установить монгу? mongodb-org : Depends: mongodb-org-shell but it is not going to be installed Depends: mongodb-org-server but it is not going to be installed Depends: mongodb-org-mongos but it is not going to be installed E: Unable to correct problems, you have held broken packages.
судя по логу беда не в пакете монги, а в том, что в системе имеются сломанные пакеты. нужно сначала их пофиксить, и после этого попробовать снова установить монгу
Joe
а как найти/пофиксить сломанные пакеты?
https://askubuntu.com/questions/223237/unable-to-correct-problems-you-have-held-broken-packages
Edwin-Mark
Здрасте! Подскажите как лучше: embed или reference структура базы. У меня много инструкций к одному боту, которых может быть много у одного юзера. many (instr) -> one, many (bot) -> one (user)
Pythonic
Как application должен держать/создавать connection с монгой? Один коннект при запуска апки? Или каждый раз для каждого клиента аппки? Где почитать про это все?
Pythonic
Один коннект при запуске аппки
А при нагрузке? Или монго под капотом сама разбирается с коннектами?
Максим
А при нагрузке? Или монго под капотом сама разбирается с коннектами?
Когда делаете коннект, в монгоклаент есть настройки — poolSize отвечает за максимальное количество соединений с базой, которые переиспользуются. Какую количество пула нужно выбрать, я и сам бы хотел узнать. Читал что методом проб. Хотя по моему мнению — чем больше тем лучше.
Максим
По умолчанию пулсайз в монгодрайвере на ноде — 5
Александр
Всем привет, я правильно понимаю что у self-hosted монги нет триггеров?
Максим
А у меня вопрос — как правильно выбрать число poolSize? От чего это зависит?
Nick
А у меня вопрос — как правильно выбрать число poolSize? От чего это зависит?
от наличия нагрузочного тестирования и мониторинга загруженности пула
Александр
все верно, триггеров нет
а как принято решать задачу поддержания счётчиков в актуальном состоянии?
Максим
от наличия нагрузочного тестирования и мониторинга загруженности пула
Вот к примеру 70 конекшенов в компасе показывает. Пулсайз 100 поставил. Будет больше, ставить больше? На каждое соединение монга делает трэд? Или процесс?
ktts
Здравствуйте. Как можно вернуть только один объект из массива, используя оператор $or? Есть документ с массивом объектов array - {“test1”: 1, “test2”: 2} и т.д. db.test.find( {“array.test1”: 1}, {“array.$”: 1} ) – работает, но со значением 1 может быть и test2 db.test.find({$or: [ { “array.test1”: 1}, {“array.test2”: 1 } ] }, {“array.$”: 1}) выдает ошибку "positional operator '.$' couldn't find a matching element in the array". Можно ли вообще так сделать, или только получать полный массив, а потом средствами языка выбирать нужный объект?
Александр
смотря каких счетчиков и зачем они надо
чтобы часто count не делать. Например, есть коллекция папок, и коллекция документов в папках, нужно при добавлении/удалении/перемещении документов, поддерживать актуальным поле с количеством документов в папке. Видимо нужно на бэке транзакцию с insert и update делать?
Nick
Вот к примеру 70 конекшенов в компасе показывает. Пулсайз 100 поставил. Будет больше, ставить больше? На каждое соединение монга делает трэд? Или процесс?
внутрянку не помню, но пока не будет мониторинга загруженности пула все эти попытк его правильно выставить бессмысленны
Александр
да
понятно, спасибо
Nick
Простите, а мониторить чем?
сам пул со стороны приложения стандартным средствами сбора метрик
Nick
если вы хотите замерять количество открытых коннектов у монги, то это вцелом бессмысленно. Но если хотите мониторить, то тут номрально не напрявлю, может кто еще подскажет, вроде есть нормальные экстракторы метрик для прометея
Artem
Какого фига он создает новый, если уже есть существующий?
Artem
Nick
Какого фига он создает новый, если уже есть существующий?
новый потому что у вас в query ест ьеще чтото кроме id
Nick
тут написано на эльфийском)) не знаю как работает || и к каким эффекстам привеодит
Artem
тут написано на эльфийском)) не знаю как работает || и к каким эффекстам привеодит
если fromUser.id не определено, будет передавно значение fromUser. || — в буквальном смысле или
Nick
вот вам надо значит залогироват ьи првоерить что именно в результирующем query
Artem
Почему save не работает?
Artem
Почему save не работает?
Значение всего одно, т.е. findOne точно возвращает единственный документ переписал на findOneAndUpdate и работает как надо
Nick
тогда это какаято магия js, потому что поведение связанное с добавлением нового дока с указанием upsertа может быть только если в квери находится нечто, по которому не находится исходных документ из бд
Nick
Почему save не работает?
не работает потому что findOne без явного указания _id не гарантирует возврат того же дока
Nick
док единственный
у вас же монгус, как у него методы работают одним создателям известно
Nick
предлагаю делать нормальные воспроизводимые тесты
Artem
Короче. Чтоб работало, надо находить _id и передавать его при апдейте?
Nick
использовать монговские _id, а не свои
Nick
да
Artem
использовать монговские _id, а не свои
Я не могу. Я от телеги получаю ID, что есть единсвтенным параметром, по которому я могу найти юзера
Kenan
Я могу ошибаться, но findOneAndUpdate не вызовет валидацию. Но ошибка не в этом
Artem
Тогда не было бы этой ошибки
Nick
про _id могу сказать только что это то в чем можно быть точно уверенным при работе с монгой
Kenan
Тогда не было бы этой ошибки
Так это не ошибка валидации
Nick
и ничего не мешает использовать ваш ид в качестве _id
Artem
Так это не ошибка валидации
Это вообще хер знает что за ошибка)
Zaur
и ничего не мешает использовать ваш ид в качестве _id
А если мне надо по другим критериям делать поиск?
Nick
Тогда можно выбросить сразу монгу?
остальное это уже руки, голова, проектирование, написание коректного кода, тестирование, мониторинг и т.д.
Nick
точно также как и другие БД, в которых я даже за id не всегда могу ручаться
Nick
А если мне надо по другим критериям делать поиск?
я про то что когда надо работать с одним доком, и у этого дока есть однозначный уникальный идентификатор, то его надо пихать в _id
Nick
_id: "asdadasds"
Nick
никакой магии
Artem
_id: "asdadasds"
ошибку выдаст
Zaur
_id: "asdadasds"
Это при создании документа?
Sergey
ошибку выдаст
Не выдаст.
Nick
ошибку выдаст
https://mongoosejs.com/docs/guide.html#_id
Artem
Не выдаст.
Я сразу пытался так делать, он чет там матерился и я решил оставить его _id. Мб не то чет намутил, не буду спорить