@MongoDBRussian

Страница 295 из 342
Artem
26.08.2018
17:14:27
Можно почистить конфиг базу, но на свой страх и риск)

Andrey
26.08.2018
17:55:18
Добрый вечер. А если в реплика сет где праймари , секондари и арбитр. Добавить ещё одну секондари, арбитр нужен?

Constantin
26.08.2018
17:58:54
Ну и вообще зависит от того, что будет за Secondary, если он будет Hidden и для него будет выключено участие в голосовании, то арбитра можно оставить

Google
Andrey
26.08.2018
18:01:46
А для чего обычно хиден делается!?

Constantin
26.08.2018
18:04:31
А для чего обычно хиден делается!?
Например, чтобы строить сложные и тяжелые отчеты, или чтобы бэкапить без нагрузки. Ну и есть особый вид Hidden — Delayed, на нем хранятся данные с отставанием, например на один час. Это нужно, чтобы из-за кривого кода или случайных (или умышленных) ошибок у вас были относительно консистентные данные

Andrey
26.08.2018
18:05:31
Понятно некое подобие disaster recovery.

Constantin
26.08.2018
18:07:45
Понятно некое подобие disaster recovery.
Скорее один из инструментов, потому что для подобных ситуаций должен быть комплекс целый

Вообще очень советую подробно прочитать весь раздел про репликацию в документации https://docs.mongodb.com/manual/replication/

Constantin
26.08.2018
18:14:37
yopp
26.08.2018
18:19:31
Так и есть: Use hidden members for dedicated tasks such as reporting and backups. Delayed members should be hidden.
Только они не доступны из view кластера. К ним возможно только прямое подключение.

Весь смысл hidden в том чтоб быть скрытыми от запросов клиентов. Документация вообще странно написана: «Clients will not distribute reads with the appropriate read preference to hidden members». Нет такого read preference, с которым клиенты могут отправить запрос на hidden ноду. Про отчёты тоже странная формулировка, без замечания что для этого необходимо прямое соединение.

yopp
26.08.2018
18:46:46
Но так лучше не делать. Это одно из тех мест, где монговцы сами себе противоречат. Это попытка масштабирования read capcity с помощью secondary, что раньше ими порицалось. С сессиями и транзакциями становится ещё тяжелее

Andrey
26.08.2018
19:08:20
Я хочу понять только один аспект. Могу ли я использовать такой режим для снятия дампа с базы.

Google
Andrey
26.08.2018
19:08:35
Видимо могу.

yopp
26.08.2018
19:26:44
Да, для этого оно по сути и предназначено

Dmitry
27.08.2018
09:07:44
Всем привет! Кто включал featureCompatibilityVersion == 3.4 после апгрейда с 3.2? Как себя ведёт репликасет? Была ли деградация по перфомансу?

Vova
27.08.2018
21:05:17
Полагаю, идёт несогласование версий (например mongodb server 4.0 vs mongodump 3.6)

Andrey
28.08.2018
10:25:37
Добрый день, вопрос по Шардированию. Как я понимаю данные размазываются по репликасетам. Тогда вопрос, что будет, если одна нода развалится, часть данных, которая она хранит пропадет,целостность данных нарушится?

yopp
28.08.2018
10:40:01
Если упадет одна нода в реплика сете из нескольких нод, то ничего. Произойдут выборы, будет новый мастер.

А вот если шард целиком, то да. У вас будет дырка в данных

Vladimir
28.08.2018
11:34:43
Всем привет. У меня вопрос по организации схемы данных в монго. У меня есть справочная коллекция Modules (id+различные поля настроек для модуля) и коллекция Devices. Нужна возможность устанавливать Modules для Device с переопределением настроек от дефолтных. Я подозреваю, что можно что-то вроде device.installedModules = {_id: ..., moduleId: module._id, <тут список полей, которые есть в Module, но с переопределенными значениями>} Верно ли это, либо подход другой должен быть? Буду благодарен за примеры и ссылки на доки/статьи

Artyom
28.08.2018
13:25:26
друзья, подскажите, пожалуйста Почему-то при поиске гео-объектов с помощью $geoWithin => $centerSphere выдаются ТОЛЬКО ТОЧКИ, которые лежат внутри сферы, хотя, внутри сферы имеются также и полигоны. В чём проблема? Как можно решить? Полигоны тоже нужны Запрос: find({"ns":"log.geo","filter":{"location":{"$geoWithin":{"$centerSphere":[[99.525511,14.033928],0.0025232135647961246]}}}})

Dmitry
28.08.2018
14:34:08
Приветствую. Имеется коллекция с расходами у которых есть дата, сумма и получатель. Подскажите пожалуйста, как сделать аггрегацию, чтобы на выходе у меня была статистика суммы этих расходов по месяцам и получателям? Вот так 2018.08: total: 1000000, потрачено на получателя 1: 100000 потрачено на второго получателя: 30000 и т д

Dmitry
28.08.2018
14:36:43
у меня сейчас вот так db.getCollection("transactions").aggregate( { $group : { _id: { year : { $year : "$date" }, month : { $month : "$date" }, }, count: { $sum: "$sum" } }} )

Но я не понимаю каксделать, чтобы считало сумму для каждого получателя в отдельности

а не просто тотал

Oleg ?
28.08.2018
14:37:44
Ребят, привет. Подскажите, почему монга может уничтожать цпу. currentOp и profiler долгих запросов не видят. но htop показывает 250% cpu usage. все 4 ядра забиты. монга 3.2.16. я знаю что нужно обновлять, но все с этой версией работало хорошо

Dmitry
28.08.2018
14:40:54
А как быть в ситуации, если получателей несколько? т.е. есть массив receivers['receiver1,'receiver2'...]

Google
yopp
28.08.2018
14:42:57
но стоит посмотреть на qps, может быть просто клиентов больше стало или разработчики выкатили новый релиз, который поменял паттерны

возможно где-то в маленькую коллекцию мимо индексов ходят

несколько тысяч раз в минуту

Oleg ?
28.08.2018
14:43:23
хм, ща гляну, спасибо

yopp
28.08.2018
14:45:43
рекомендую воткнуть перконовский мониторинг

по нему хоть видно чо происходит и там есть ловилка запросов

Dmitry
28.08.2018
14:45:59
спасибо огромное, вы спасли мне вечер) последний вопрос - получатели - это ObjectId, как их раскрыть в выдаче?

yopp
28.08.2018
14:46:12
что значит «раскрыть»?

Dmitry
28.08.2018
14:48:01
как populate() в mongoose

чтобы вместо ссылки был исходный объект

yopp
28.08.2018
14:48:26
а, $lookup

Alex
28.08.2018
14:48:55
твой _любимый_ $lookup

Admin
ERROR: S client not available

Dmitry
28.08.2018
14:55:42
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 }

т е пустой массив

без lookup возвращает все как надо, но в виде ObjectId

Alex
28.08.2018
14:57:58
без lookup возвращает все как надо, но в виде ObjectId
попробуй $lookup сделать после $group стейджа

Dmitry
28.08.2018
14:58:56
уже попробовал, тоже самое к сожалению..

бред, по логике должно же работать так как после unwind это делаем

ее, разобрался

Google
Dmitry
28.08.2018
15:07:16
в foreignField надо было указать _id вместо name

А возможно ли сделать, чтобы receiver был не в _id, а в объекте месяца был список всех receiver с их суммами?

yopp
28.08.2018
15:48:02
вы переносите логику приложения в базу

посчитайте по _id, а потом уже в приложении делайте что хотите

Winter
28.08.2018
15:53:36
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 не заходит. Как можно пофиксить ?

Вот дока https://mongoosejs.com/docs/connections.html#callback

Ок попробую

Так работает, спасибо

Kirill
29.08.2018
06:26:16
https://github.com/chobostar/mongodb-backup-s3 дописал docker образ "примитивных" бэкапов небольших баз на mongodb. Добавлено: - поддержка кастомного S3 совместимого хранилища - функционал по сохранению только N последних бэкапов Может кому интересно. А кто захочет дописать - добавить поддержку инкрементальных бэкапов например.

Anton
29.08.2018
06:26:44
#ищу работу #удаленку ищу постоянную удаленную работу системным администратором unix/linux/voip/networking и/или специалистом по информационной безопасности(ИБ). все подробности и резюме через мой контакт в телеге: @sysbooter С уважением,

Артем
29.08.2018
11:59:12
Парни

Создание индекса на большую коллекцию подвешивает операции вставки и обновления?

Constantin
29.08.2018
12:09:45
Запустите создание индекса асинхронно используя опцию background

Артем
29.08.2018
12:10:05
Оо

Можно подробнее?

А, нашел

Страница 295 из 342