yopp
можно включить на пару минут профайлер с slowms: 0 и посмотреть что туда навалится
yopp
но стоит посмотреть на qps, может быть просто клиентов больше стало или разработчики выкатили новый релиз, который поменял паттерны
yopp
возможно где-то в маленькую коллекцию мимо индексов ходят
yopp
несколько тысяч раз в минуту
Oleg
хм, ща гляну, спасибо
yopp
рекомендую воткнуть перконовский мониторинг
yopp
по нему хоть видно чо происходит и там есть ловилка запросов
The first
спасибо огромное, вы спасли мне вечер) последний вопрос - получатели - это ObjectId, как их раскрыть в выдаче?
yopp
что значит «раскрыть»?
The first
как populate() в mongoose
The first
чтобы вместо ссылки был исходный объект
yopp
а, $lookup
Anonymous
твой _любимый_ $lookup
The first
db.getCollection("transactions").aggregate([ {$unwind:"$receivers"}, {$lookup:{ from: "receivers", localField: "receivers", foreignField: "name", as: "receivers" }}, { $group : { _id: { year : { $year : "$date" }, month : { $month : "$date" }, receiver: "$receivers" }, count: { $sum: "$sum" } }}] ) Возвращает { "_id" : { "year" : NumberInt(2018), "month" : NumberInt(4), "receivers" : [ ] }, "count" : 1796482.9 }
The first
т е пустой массив
The first
без lookup возвращает все как надо, но в виде ObjectId
Anonymous
без lookup возвращает все как надо, но в виде ObjectId
попробуй $lookup сделать после $group стейджа
The first
уже попробовал, тоже самое к сожалению..
The first
бред, по логике должно же работать так как после unwind это делаем
The first
ее, разобрался
The first
в foreignField надо было указать _id вместо name
The first
А возможно ли сделать, чтобы receiver был не в _id, а в объекте месяца был список всех receiver с их суммами?
yopp
вы переносите логику приложения в базу
yopp
посчитайте по _id, а потом уже в приложении делайте что хотите
Winter
mongoose.connect(config.dbURL, config.dbOptions) .then(() => console.log('Mongoose successful connection')) .catch((err) => console.error("Mongoose starting error: ", err)); Привет. Народ у меня Mongoose successful connection отрабатывает в любом случае, когда есть соединение, и когда нету всё ровно Mongoose successful connection, в блок catch не заходит. Как можно пофиксить ?
Winter
Вот дока https://mongoosejs.com/docs/connections.html#callback
Winter
Ок попробую
Winter
Так работает, спасибо
Kirill
https://github.com/chobostar/mongodb-backup-s3 дописал docker образ "примитивных" бэкапов небольших баз на mongodb. Добавлено: - поддержка кастомного S3 совместимого хранилища - функционал по сохранению только N последних бэкапов Может кому интересно. А кто захочет дописать - добавить поддержку инкрементальных бэкапов например.
typeofhex
#ищу работу #удаленку ищу постоянную удаленную работу системным администратором unix/linux/voip/networking и/или специалистом по информационной безопасности(ИБ). все подробности и резюме через мой контакт в телеге: @sysbooter С уважением,
Артем
Парни
Артем
Создание индекса на большую коллекцию подвешивает операции вставки и обновления?
Constantin
Запустите создание индекса асинхронно используя опцию background
Артем
Оо
Артем
Можно подробнее?
Артем
А, нашел
Артем
Спасибо)
Артем
А по дефолту создание индекса блокирует коллекцию?
Constantin
https://docs.mongodb.com/v3.4/reference/method/db.collection.createIndex/#options-for-all-index-types
Артем
Окай
Art
друзья, подскажите, пожалуйста Почему-то при поиске гео-объектов с помощью $geoWithin: $centerSphere выдаются ТОЛЬКО ТОЧКИ, которые лежат внутри сферы, хотя, внутри сферы имеются также и полигоны. В чём проблема? Как можно решить? Полигоны тоже нужны Запрос: find({"ns":"log.geo","filter":{"location":{"$geoWithin":{"$centerSphere":[[99.525511,14.033928],0.0025232135647961246]}}}}) Пробовал через $near: $geometry, но данный метод возвращает все пересекающиеся объекты,а мне нужны те, что внутри $geoWithin правильно работает с $geometry: {type: Polygon} Если идти по этому пути, то надо точку превратить в полигон вписанный в круг, а точка бы являлась центром этого полигона. Формулу пока не получается найти :(
Mira
Добрый день, подскажите как обновить данные в коллекции? Пробовал через findOnAndUpdate, он почему-то мне добавляет вместо обновления данных
Mira
https://docs.mongodb.com/manual/crud/#update-operations
Спасибо за ответ, но что если я пользуюсь схемами mongoose?
Михаил Макарычев
Спасибо за ответ, но что если я пользуюсь схемами mongoose?
Я могу погулилть документацию к mongoose, но советую сделать это вам
Mira
Ровно теже методы
Спасибо, но какой-то магией не работало, скорее я косячил
Mira
Я могу погулилть документацию к mongoose, но советую сделать это вам
В целом, помогла документация mongoose Вышло примерно так var query = { name: 'borne' }; Model.findOneAndUpdate(query, { name: 'jason bourne' }, options, callback)
Constantin
Ребят, вывалилась база, не очень важная, на домашнем проекте При попытке запустить с восстановлением падает вот так: the process must exit and restart: WT_PANIC: WiredTiger library panic ***aborting after fassert() failure Пробовал потереть сокет файл, раньше помогало Запущена была как сингл истанс
Constantin
Есть идеи что поделать?
Constantin
mongod --repair --dbpath ~/data/db
Constantin
Вот так стартовал, после выпадения
Anonymous
это у вас реплика развалилась? была как сингл инстанс - это в смысле и сейчас или меняли
Sergei
при работе через mongoose ошибки он показывает стандартные от mongodb? Есть у mongodb какие то коды ошибок? Мне нужно например отловить ситуацию когда ИД по которуму ищут не существует и сделать кастомную ошибку, сейчас я в консоль получаю давольно большую простыню.
Nick
По вашему вопросу четко не ясна проблема
Nick
Конкретезируйте, откуда у вас портянка в консоли?
Sergei
Я шлю запрос findByIdAndUpdate с заведомо дожным ид, что бы сделать ошибку в таком случае более короткой но понятной откуда ноги растут.
Sergei
Дефолтная ошибка catch (e) много букф
Nick
В таком запросе не будет ошибки
Nick
Нужно один раз вылечить что у вас происходит, а по логике надо просто проверять вернулось чтото или нет, если нет то и в базе ничего не было
Nick
Дефолтная ошибка catch (e) много букф
Походу у вас не дефолтная ошибка, а реальная ощибка приложения
Sergei
Кажется я начинаю понимать в чем дело. Я отправляю ид строку, ее приводят к обджектид, а я к ид что бы не запариваться добавлял цифру, как итог приведение к обджектид не срабатывает и ошибка.
Anonymous
вы ппц какой везунчик, что это изначально работало
Sergei
Проглатило
Sergei
Если слать норм ид чего ему не работать
Anonymous
а вы сами изначально слали
Anonymous
а зачем отошли от этого?
Anonymous
хотя чето-то я запутался
Anonymous
забьем
Sergei
Проверить решил, что будет если послать ид которого нет.
Сергей
капец я пропарился с тем, что с последней версией монгуста коннект к монге отпадает по таймауту. Кто-то знает более крутые варианты, чем перейти на монгуста 4.7.2 ?
AstraSerg
А по дефолту создание индекса блокирует коллекцию?
Не коллекцию, а всю БД. Что, имхо, эпик.
AstraSerg
Всем привет! Кто включал featureCompatibilityVersion == 3.4 после апгрейда с 3.2? Как себя ведёт репликасет? Была ли деградация по перфомансу?
Давно это было, но ничего не сломалось ни в этот, ни в последующие разы. Правда у меня не высоконагруженная система.