🦁Artem
Фильтруем только под конкретный язык всегда
Dmitry
у меня была похожая проблема, решили синхронизацией данных с ES, а там несколько разных индексов с разными настройками по одному и тому же полю
Dmitry
ну то есть там язык, case sensitive/insensitive + со спецсимволами индексы
Dmitry
монга мне показалась в этом совсем не сильна
🦁Artem
Благодарю всех за советы, присмотрюсь к ES
Dmitry
ES кстати тоже так себе, я так понял хранить там что-то не лучший выбор, мы поднимаем только для поиска и данные там просто дублируются. Но вроде самое простое решение
Timur
А как вы данные синхронизируете монги с эластиком?
Aleksey
не любовь к парням из монги.
Aleksey
или системд не знаю уж кому адресовать нелюбловь.
Aleksey
монга 3,4,5 стартует раньше чем стартует сеть на хосте
Aleksey
в [Unit] After=network.target есть. но этого мало.
Aleksey
так вот # /etc/systemd/system/mongod.service.d/override.conf [Unit] After=network.target Requires=network.target стартует после сети
yopp
сделай пуллреквест
yopp
ты где с этим столкнулся?
yopp
Materialized path. Папка == файл
yopp
Свойство == кэш. За ним будет трудно следить.
yopp
Более того, мне кажется в gridfs этот вопрос уже освещён.
Boguslav
не уверен + говнокод var result = []; files.find((files) => { folder.find((folders)=>{ folders.map((folder)=>{ files.forEach((file)=>{ let i = 0; if(files.folderId == folders.id) { i++; }; }); result.push(new Object('id' : folder.id, 'name' : folder.name, 'filesCount' : i)); }); }); });
Anonymous
>не уверен + говнокод Я так всю жизнь работаю
Boguslav
жиза)
yopp
А оно на уровне монге и не решается. Можно конечно джойн сделать, но это плохой дизайн
yopp
Основная ошибка — разделить файлы и директории в разные коллекции, тогда как сами сущности используются вместе.
yopp
Если объединить их в одну коллекцию, такой вопрос будет решаться агрегацией.
yopp
Хотя если уже объединять, то лучше уж materialized path использовать. Это известное решение, с которым всё понятно.
yopp
Если ты не хочешь слышать совета, то ¯\_(ツ)_/¯
yopp
Правильно писать в монгу так, как ты оттуда будешь читать.
yopp
Идеально свести всё к простым запросам без агрегаций.
yopp
За исключением тех редких кейсов где записи на порядки больше чем чтения.
Timur
Столкнулся с проблемой: со временем растет CPU у процесса монги на праймари в реплика сете. С чем это может быть связано, куда копать? v3.4.5 wiredTiger
Timur
yopp
Смотреть на остальные графики
yopp
Воткнуть https://github.com/y8/mongo_collection_exporter
Timur
Блин, индексы забыл добавить на одну коллекцию. Данные растут, а там фулл скан гоняет. Помогло посмотреть на другие графики)
Denis
Aleksey
@dd_bb mon_1 | D, [2017-07-04T14:33:10.089868 #6] DEBUG -- : MONGODB | ххх:27017 | admin.listDatabases | STARTED | {"listDatabases"=>1} и висит. чо хочет ?
Aleksey
ох | local.find | SUCCEEDED | 273.809597s
yopp
:)
yopp
Ответ на запрос хочет!
yopp
База перегружена?
yopp
Или сеть?
Aleksey
оба нет
Aleksey
mongo_scrape_duration_ms 294703
Aleksey
ох
Aleksey
ага второй и последующие запросы уже лучше
yopp
ааа
yopp
это экспортер
yopp
интересно
Aleksey
mongo_scrape_duration_ms 15380
yopp
а там много коллекций?
Aleksey
182тысячи метрик....
Aleksey
с этим наверное чтото надо делать
yopp
182 тысячи коллекций?
yopp
или ты про какие метрики?
yopp
если ты про метрики экспортера, то это нормально. поставь раз в минуту скрейп
yopp
даже раза в пять минут в среднем хватает
Aleksey
метрик именно
Aleksey
раз в минуту... ок
yopp
если оно чаще, если реже — то не трогай
Aleksey
я когда думал ща "поподробнее" на монгу позырю не ожидал что будет настолько поподробнее
yopp
:))))
yopp
Там смысла чаще чем раз в минуту смотреть вообще практически нет
Aleksey
а есть возможность на какие коллекции мне пофиг ?
Aleksey
я раз в минуту и буду :)
yopp
надо посмотреть, сделал ли я ограничения по неймспейсам
yopp
ниа
yopp
заведи ишшуй
Aleksey
ок да
Anonymous
Ребят, почему в скалачате не любят монгу?
Anonymous
Говорят, что ребята на хайпе много лямов собрали и база до сих пор не кастеризуется нормально, а на тех объемах на которых она хорошо работает, постгря работает лучше
Anonymous
(с json)
Anonymous
Ссылку киньте
https://t.me/scala_ru
Denis
тут любят всякие вопросы про кишки задвать. https://emptysqua.re/blog/driver-features-for-mongodb-3-6/
Alexander
не совсем понимаю как через лукап получить другой документ есть коллекция транзакций со ссылкой (DBRef Object) на определенный документ коллекции заказов хотелось бы получить по этой ссылке заказ делаю через db.transactions.aggregate() с использованием $lookup db.transactions.aggregate([ { $match: { "order": { $exists: true } } }, { $lookup: { from: "orders", localField: "order.$id", foreignField: "_id", as: "order_doc" } } ]) но при таком коде ругается на локалфилд коллекции транзакций
Alexander
unwind не поможет, потому что тот тоже не поддерживает поля с $ в начале имени
Alexander
нашел немного монстрячное решение
Alexander
но в целом задачу решает