Sergey️
Щас я вспомню как открывал :D
Sergey️
Плюс у вас там 750к соединений. Это действительно так?
Из основных операций у меня findOne по одному полю integer :/
Serg
так может уменьшить available ? если in use 25 ?
Anonymous
Немного графиков есть в бесплатном мониторинге
подскажи плиз какую роль поставить на соедение с монго. Как я понимаю роль должна быть административная
Sergey️
yopp
Вот нет его
Добавьте индекс :)
yopp
на роль пользователя
для администратора или для приложения?
Anonymous
Добавьте индекс :)
у меня нода бек соедение простое без авторизации
Anonymous
Добавьте индекс :)
она отдает данные. но также их меняет после авторизации на стороне бека
Nick
Да можно, составной уникальный индекс нужен
Sergey️
Добавьте индекс :)
Добавил индекс, реиндекснул, пересоздал контейнер. Посмотрим как будет себя вести, но со старта сейчас все хорошо
yopp
Да, можно. Если искать потом по ним не надо, то hashed индекс может быть хорошим решеним
yopp
она отдает данные. но также их меняет после авторизации на стороне бека
Для администрирования https://docs.mongodb.com/manual/reference/built-in-roles/#root А для бэкенда я настоятельно рекомендую составить собственную роль, в которой есть только необходимые бэку права. Так чтоб бжу например не мог удалять записи, коллекции или базы данных
yopp
https://docs.mongodb.com/manual/tutorial/manage-users-and-roles/#create-a-user-defined-role
yopp
Первый раз это немного муторно, зато потом будет очень удобно
Aleksandr
А у нас в сетевом уровне у mongo zeromq ?
Aleksandr
Нет
это работуюший клиент https://github.com/neloe/MongoDB-Cpp/blob/master/connection/mongoclient.h
Aleksandr
разбараю их протокол по косточкам
yopp
А у нас в сетевом уровне у mongo zeromq ?
Нет. Обычный сокет и request-response протокол. Простецкая структура для сериализации, где немного метаданных и тело запроса/ответа в bson https://docs.mongodb.com/manual/reference/mongodb-wire-protocol/
yopp
https://github.com/mongodb/specifications/blob/master/source/message/OP_MSG.rst
Aleksandr
оригинальный ansi-с driver блокирующий
yopp
оригинальный ansi-с driver блокирующий
Зачем там asio, если можно обойтись тредом и например двумя очередями?
yopp
Сам протокол то все равно req-resp
yopp
Зачем там asio, если можно обойтись тредом и например двумя очередями?
Ну или ещё каким асинхронным примитивом для коммуникации с тредом
Aleksandr
Это все костыли нужен асинхроный в вод вывод
yopp
Да в этом особого смысла нет. Сам протокол блокирующий. Если хочется асинхронщины то по классике: connection pool и туда асинхронный интерфейс
Aleksandr
Нет протокол там асинхроный
Anonymous
Всем привет. подскажите плиз вот mongod позволяет подключиться к себе без авторизации. А можно заставить его подключаться только с авторизации
Anonymous
Можно
а как не подскажешь
Yʉri 🇺🇦
а как не подскажешь
https://docs.mongodb.com/manual/tutorial/enable-authentication/
Aleksandr
Эээ?
Там внутри есть очередь на стороне mongod
yopp
Там внутри есть очередь на стороне mongod
Да, но сам транспорт не асинхронный
yopp
Ты не сможешь в сокет отправить ещё один запрос, пока не получил ответ на предыдущий
Aleksandr
Вроде все есть для асинхроный работы
Aleksandr
Страно пойду копать
yopp
Afair, там нет мультиплексирования и одно соединение, один запрос
yopp
Как в http/1.х
yopp
Вроде все есть для асинхроный работы
Т.е все запросы из соединений попадают в общие две очереди на чтение и на запись и оттуда выгребаются воркерами. Но сами соединения не позволяют отправить несколько команда подряд и потом по мере поступления получать ответы
yopp
Может быть там конечно что-то изменилось с появлением сессий
Araik
Подскажите пжл, что-то не очень понимаю, как мне посчитать не только элементы status у документа, но и priority ?
Araik
yopp
Сложите обе группы в $faucet https://docs.mongodb.com/manual/reference/operator/aggregation/facet/
yopp
$match: {...} $faucet: {s: {$group: ...}, p: {$group: ...}}
Araik
почему-то целиком документ возвращает, без полей count
Araik
yopp
А какой запрос генерируется драйвером?
Araik
судя по всему, facet игнорируется
Araik
Araik
честно сказать, не уверен, что правильно посмотрел, я сделал var_dump курсора и судя по всему это оптравляется на сервер, при этом [query] пустое
yopp
Возможно вам нужно скобочку после ключа убрать
yopp
Там в итоге должен быть массив ассоциативных массивов и значением $faucet тоже должен быть ассоциативный массив
Araik
а вы не знаете случайно, где логи в Mongo Atlas хранятся?
Araik
не знаю как посмотреть какой запрос генерируется
Araik
но по поводу скобки, тоже обратил внимание, сейчас поправил, но судя по всему что-то не так генерируется, потому как ничего не возвращает даже
Araik
yopp
А какая команда получается на выходе?
yopp
Ваш драйвер не умеет выводить запросы в консоль?
yopp
Не уверен что в атласе можно включить профайлер на бесплатном тарифе :(
Araik
а если у некоторых документов, поле имеет значение null, можно с помощью $avg узнать среднее значение?
Araik
неправильная постановка задачи была))
yopp
$avg ignores non-numeric values, including missing values.
Araik
сделал условие, чтобы в выборке были без null
Anonymous
вопрос можно задать по mongoose?