Denis
:(
yopp
не надо добавлять левых сущностей
yopp
slowlog отлично покажет есть ли проблема с выполнением запросов
yopp
если проблема не в запросах, то скорее всего она где-то в сети
Гена
slowlog - где я могу его посмотреть?
yopp
https://docs.mongodb.com/manual/tutorial/manage-the-database-profiler/
Гена
а.Включали профилирование, пойманное кол-во запросов и кол-во ошибок в приложении разится То есть может дело быть в сети?
yopp
да
Гена
а не может быть проблемы в параметре maxPoolSize?
yopp
maxPoolSize это уже сеть
yopp
это не монга
yopp
это ваш драйвер
yopp
начните с простого: проверьте что у вас хватате полосы пропускания
yopp
что у вас хватает сокетов
yopp
что у вас нет connection churn
yopp
если у вас включен TLS и часто открываются/закрываются соединения, то проверьте что хватает энтропии, как на сервере, так и на клиенте
Гена
Спасибо большое за столько полный ответ.
Димок
Всем привет, помогите сделать базу данных, пожалуйста.
Димок
connect ECONNREFUSED пишет при подключении через компас.
Vladislav
Привет! Я хотел спросить. Есть такая коллекция. И нужно выбрать все документы, у которых общая сумма покупок (products) больше 250. Вопрос: можно ли это решить просто через find, а не aggregation pipeline?
Vladislav
{ "firstName": "Petya", "products": [ { "name": "Name1", "price": 200 }, { "name": "Name2", "price": 300 } ] } { "firstName": "Vlad", "products": [ { "name": "Name1", "price": 10 }, { "name": "Name2", "price": 200 } ] }
Артем
круг подозреваемых в 3.4 не очень широкий: соединения, буферы под сортировки, буферы под агрегации
Получается, стоит поставить на монитор данные значения для каждого узла и смотреть что просело при оом'е. Подскажите ещё, пожалуйста, какой командой можно получить текущие значения буферов, пока гуглю безрезультатно, где то в db.serverStatus()?
Assylbek
😞
в чем сложность? написать запрос?
Vladislav
в чем сложность? написать запрос?
да ни в чем)) Просто понадеялся, что такие вещи можно без аггрегации можно делать. Но нет - так нет)) Придется аггрегацию делать
Димок
Кто может помочь сделать базу данных в Атласе?
Димок
Я всё делаю как на видео, а при подключении через компас выдаёт ошибку.
Oleg
привет, а возможно создать репликасет из одного участника?
Oleg
привет, а возможно создать репликасет из одного участника?
вопрос закрыт. мне надо было иницализировать: rs.initiate()
stay
А есть техническая возможность без велосипедов с помощью mongoose релизовать работу с несоклькими базами данных ?
yopp
Косвенно смотреть по количеству запросов и сетевому трафику
yopp
Исходящий Трафик / число запросов = размер ответа Прочитано из кеша/ число запросов = io workload на запрос Прочитано в кеш/ число запросов = cache stability
yopp
И дальше эти параметры коррелировать с выделением памяти
yopp
И смотреть в каких коллекциях это происходит. Дальше брать currentOp поллинг или профайлер и смотреть какие запросы к этому приводят
yopp
Но сначала рекомендую сфокусироваться на usual suspects: многочасовые фоновые запросы (currentOp) и текущие сетевые соединения
yopp
Хотя конечно длинные запросы в основном приводят к cache trashing, но могут быть и другие сайд эффекты
Daniil
https://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html#equals
Daniil
В mongoose тоже есть похожий метод
Daniil
В Node.js можно использовать в связке с Array.prototype.find и Array.prototype.findIndex, к примеру
🖤
Привет. Использую монгус. Есть сущность , которой в хуке preSave генерирую слаг. У неё есть поле - массив с обьектами по отдельной схеме, которым тоже надо генерировать слаг, но своей модели в бд у них нет, т.е. просто использую схему. Могу ли я на их схеме навесить хук? Или на родительской схеме перебирать? Schema({ name: string, slug: string, includes: { type: IncludeSchema, } }) IncludeSchema({ name: string, slug: string }) Schema.pre("save", ) // OK IncludeSchema.pre("save",) // ??? model = model("Name", Schema) EOF UPD: Да, хуки будут работать : документация про субдокументы
Anonymous
как соранять createIndex после перезагрузки машины? его надо каждый раз заново создавать при старте приложения?
Anonymous
Привет ребят, что думаете о том что б делать онлайн уроки 1 на 1?
Slavik
Можно ли как-то данные с документа в таком формате: user: { age: 27, company: { companyName: Example, companyAdress: street } ... Отправлять на фронт в таком: user: { age:27 , company: example, companyAdress: street } , чтобы не было вложенности
Josh
чет линк от шард атласа отваливается сегодня
Josh
Error: getaddrinfo ENOTFOUND foo.mongodb.net foo.mongodb.net:27017 at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:58:26)
Господин бумага
можно ли сделать такой запрос, который будет искать и по обычным и по populated полям сразу и выдавать только те результаты где есть совпадение по хотя бы одному фильтру?
Daniil
Populated-поля это фишка mongoose, когда в схеме данных описано, что поле имеет тип ObjectId и указывается параметр ref, в котором указано название коллекции, в которой существует объект с _id, равный значению populated-поля. Тогда можно попросить mongoose вытащить этот документ в процессе запроса Если вы хотите искать по данным populated-объекта, то так сделать нельзя, можно искать только по фактическому значению этого поля в базе, а это ObjectId
Daniil
Типа да. Вот описание - https://mongoosejs.com/docs/populate.html
Daniil
Довольно мощный инструмент, но как это все по перфомансу - хз
Alex
Довольно мощный инструмент, но как это все по перфомансу - хз
Мне кажется, что это сильно все тормозит...
Daniil
Я просто не знаю оптимизирует ли он как то запросы внутри или тупо делает findOne для каждого документа, если оптимизирует, то все ок, ну в том смысле, что самому лучше не сделаешь особо
Alex
Я просто не знаю оптимизирует ли он как то запросы внутри или тупо делает findOne для каждого документа, если оптимизирует, то все ок, ну в том смысле, что самому лучше не сделаешь особо
Ну вот это как-то внутри оптимизируется, я думаю, я про то, что, возможно, если запрос большой, много памяти отъесть может, хотя, у нас на приложении все ок работает)
Vova
мне кажется там $lookup)
Vladislav
Привет! Такой вопрос. А можно ли как-то с помощью индекса (текстового) достать не документы, удовлетворяющие ему. А элементы из субколлекции.
Vladislav
Например, есть документ-словарик
Vladislav
{ "_id" : ObjectId("5da4dc23c242bd7de49a31de"), "words" : [ { "words" : [ { "word" : "a cat", "language" : "english" }, { "word" : "кошка", "language" : "russian" } ] }, { "words" : [ { "word" : "assume", "language" : "english" }, { "word" : "предполагать", "language" : "russian" } ] }, { "words" : [ { "word" : "dog", "language" : "english" }, { "word" : "собака", "language" : "russian" } ] } ] }
Vladislav
и по запросу db.dictionaries.find( { $text: { $search: "cat" } } достать только перевод и на англ и на русском
Vladislav
То есть такое получить:
Vladislav
{ "words" : [ { "word" : "a cat", "language" : "english" }, { "word" : "кошка", "language" : "russian" } ] },
Anonymous
добрый вечер! у меня в базе 5 млн документов. при выполнении запроса .find заметил низкую скорость, при выборке по одному условию. .find({tags: { $in: [new ObjectID(tag)] }}) выборка была порядка секунды. попробовал сосздать индекс - это сработало, выборка 50мс, пока устраивает. НО, теперь понадобилось сделать выборку по двум условиям и опять все медлено .find({style: style, tags: { $in: [new ObjectID(tag)] }}) Попробовал создать индекс для style, но это не дало никакого эффекта (даже наоборот кажется межленнее стало). Как быть?
Anonymous
или надо создавать индекс для нескольких кеев?
Anonymous
ага нагуглил только что, спс
Anonymous
теперь еще сортировать надо...ужасная производительность, увы. я правильно полагаючто для таких целей монга не подойдет? 5 млн документов, выборка по нескольким параметрам, сортировка - да еще и под нагрузкой порядка 1000 клиентов на сайте одновременно. монга не катит?
Anonymous
так в том-то и дело что вручную все надо делать, по всем запросам (а этих вариантов может быть много в приложении) и даже так проивзодительность у меня низкая. какая-то нагрузка непонятная на ЦП. при том что я только локально разрабатываю без нагрузки. конечно может я что-то не так делаю, но все выглядит не очень при таких объемах данных
Joseph
Ребят , кто нибудь находил хорошие статьи по тригерам в могне ???
Aleksandr
🤔 в монге ведь нет триггеров
Joseph
🤔 в монге ведь нет триггеров
https://docs.atlas.mongodb.com/triggers/ А это тогда что ??
Aleksandr
а, это в атласе