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
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
Constantin
Артем
Окай
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, он почему-то мне добавляет вместо обновления данных
Михаил Макарычев
Constantin
Михаил Макарычев
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
Sergei
Nick
По вашему вопросу четко не ясна проблема
Nick
Конкретезируйте, откуда у вас портянка в консоли?
Sergei
Я шлю запрос findByIdAndUpdate с заведомо дожным ид, что бы сделать ошибку в таком случае более короткой но понятной откуда ноги растут.
Sergei
Дефолтная ошибка catch (e) много букф
Nick
В таком запросе не будет ошибки
Constantin
Nick
Нужно один раз вылечить что у вас происходит, а по логике надо просто проверять вернулось чтото или нет, если нет то и в базе ничего не было
Sergei
Sergei
Кажется я начинаю понимать в чем дело. Я отправляю ид строку, ее приводят к обджектид, а я к ид что бы не запариваться добавлял цифру, как итог приведение к обджектид не срабатывает и ошибка.
Anonymous
Anonymous
вы ппц какой везунчик, что это изначально работало
Sergei
Проглатило
Sergei
Если слать норм ид чего ему не работать
Anonymous
а вы сами изначально слали
Anonymous
а зачем отошли от этого?
Anonymous
хотя чето-то я запутался
Anonymous
забьем
Sergei
Проверить решил, что будет если послать ид которого нет.
Сергей
капец я пропарился с тем, что с последней версией монгуста коннект к монге отпадает по таймауту. Кто-то знает более крутые варианты, чем перейти на монгуста 4.7.2 ?
AstraSerg
AstraSerg