@MongoDBRussian

Страница 280 из 342
Andrew
01.08.2018
15:42:26
Т.е. задержкой репликации это не объяснить

Constantin
01.08.2018
18:05:43
Т.е. задержкой репликации это не объяснить
Возможно у вас было два ведущих в какой-то момент и оптлог криво среплицировался. Такое может произойти при ошибках в настройке и проблемах внутри сети, когда несколько клиентов

Если клиент один — то это странное поведение

Google
yopp
01.08.2018
19:07:43
Попробуйте агрегацией посчитать число документов

Andrew
01.08.2018
19:08:19
Думаю тоже так поступить :)

Возможно у вас было два ведущих в какой-то момент и оптлог криво среплицировался. Такое может произойти при ошибках в настройке и проблемах внутри сети, когда несколько клиентов
Реплицировал с нуля, выставил реплицируемой ноде нулевой приоритет, чтобы мастером не стала. А в ту коллекцию вообще давно ничего не писалось. В этом плане маловероятно

Ruslan
02.08.2018
08:52:57
Можно ли как то сделать, чтобы в индексе expireAfterSeconds как то помягче отжирал ресурсы? После его введения просела производительность. По графикам очень выросло CPU и нагрузка на диск.

Constantin
02.08.2018
09:52:38
Можно ли как то сделать, чтобы в индексе expireAfterSeconds как то помягче отжирал ресурсы? После его введения просела производительность. По графикам очень выросло CPU и нагрузка на диск.
А индекс добавлялли уже на существующую коллекцию? Если коллекция была большая, он будет отжирать, как и любой другой индекс, на время построения, потом успокоится

Ruslan
02.08.2018
10:12:54
@ya_kostya индекс был новый, коллекция большая, да, сам индекс строился два часа (нагрузку обрубали на время построения, сейчас удаляет записи под нагрузкой, и монга начала медленнее отдавать данные, в чем и проблема).

Constantin
02.08.2018
10:13:37
А индекс бэкграунд или фореграунд?

Ruslan
02.08.2018
10:13:45
бэкграунд

Constantin
02.08.2018
10:14:20
Тогда странно, он должен был чистить по-ходу построения индекса

Но вообще, если документов много которые нужно удалить — это нормально что растет нагрузка, особенно если на коллекции есть другие индексы

Так как уделение и обновление может вызывать проблемы если индексов много, или они тяжелые

yopp
02.08.2018
10:20:39
Ruslan
02.08.2018
12:09:09
@dd_bb постоянно, но там много данных, которые надо вычистить. Удаляются 300-600 в минуту из 4млн записей в базе.

Google
yopp
02.08.2018
12:09:37
300-600 это не очень много

4 млн тоже не очень много

а какой поток записей/чтений?

Ruslan
02.08.2018
13:56:37
yopp
02.08.2018
13:57:27
вероятнее всего пришло время масшрабироваться

Ruslan
02.08.2018
13:58:00
Эх :( Жду железа

Anton
02.08.2018
14:14:32
Как при группировке посчитать количество всех аккаунтов + кол-во уникальных?

подвис немного

http://dpaste.com/0P0FD25

Делать еще одну проекцию после группировки?

Yurii
02.08.2018
14:33:47
Делать еще одну проекцию после группировки?
добавить ещё одну группировку, где _id: null, unique: {$sum: 1}, all: {$push: "$all"}, а потом проекцию, где посчитать сумму all... Возможно, можно проще ?‍♂️

Anton
02.08.2018
14:34:53
account_ids: { $addToSet: '$account_id' } - делаю пока так. А можно ли еще null значения пропускать?

http://dpaste.com/1BBWB91

Banschikov
03.08.2018
06:20:56
Приветствую! Подскажите, как правильно переименовать пользователей баз данных в монге?

Artem
03.08.2018
06:28:21
Приветствую! Подскажите, как правильно переименовать пользователей баз данных в монге?
В смысле, правильно переименовать? Вас синтаксис команды интересует?

Попробуйте так : db.system.users.update({"user":"oldname"}, {$set:{"user":"newname"}})

Banschikov
03.08.2018
06:31:35
В смысле, правильно переименовать? Вас синтаксис команды интересует?
Читал доки, но так и не понял как это сделать правильно.

Попробуйте так : db.system.users.update({"user":"oldname"}, {$set:{"user":"newname"}})
Я правильно понимаю, что это будет работать так Перехожу в нужную БД: use mydatabase Далее db.system.users.update({"user":"oldname"}, {$set:{"user":"newname"}})

Artem
03.08.2018
06:33:20
Сейчас до рабочего места доберусь, попробую прям с примером сделать

Banschikov
03.08.2018
06:37:33
Сейчас до рабочего места доберусь, попробую прям с примером сделать
Спасибо! Я пробовал так делать вчера, но помоему ничего не сработало. Заранее извиняюсь, я просто /dev/null в монге)

Google
Данила
03.08.2018
07:21:39
Здравствуйте. Можно ли сделать горизонтальное масштабирование MongoDB таким образом: Есть 2 хоста, на каждом из них создан Docker контейнер с MongoDB. К каждому контейнеру в директорию с БД примонтирована CephFS.

Slava
03.08.2018
07:40:17
думаю что нет, монга ведь умеет в шардирование оно не подходит вам?

Artem
03.08.2018
07:44:09
думаю что нет, монга ведь умеет в шардирование оно не подходит вам?
поддерживаю мнение предыдущего оратора. Не проще решить проблему стандартными средствами mongo?

Anton
03.08.2018
08:20:06
Здравствуйте. Есть проблема, осваиваю транзакции в mongoose 5.2.6 и наткнулся на ошибку "Transaction numbers are only allowed on storage engines that support document-level locking". Сама база на mlab-е. Подскажите пожалуйста в какую сторону копать? Код использовал из мануала по mongoose

Undefined
03.08.2018
08:45:28
Добрый день, может знает кто, как правильно передавать полученную бд? Сделал отдельный модуль для подключения (до этого всё было в server.js и работало) 1ое - server.js 2ое - запрос 3ие - mongoconnect.js







Пишет ошибку, при попытке обращения к db.collection (на 3 скрине) ошибка db.collection is not a function

Anton
03.08.2018
08:50:48
А db он точно нашёл при подключении?

Undefined
03.08.2018
08:51:55
Да, урл тот же



Как я понял, вне метода connect он её не видит, т.е. инициализация идёт только внутри метода .connect() Но я хз тогда как правильно вынести это в отдельный метод

Mikhail
03.08.2018
11:27:39
Вам в @nodejs_ru. И вы неправильно понимаете асинхронность в ноде

Undefined
03.08.2018
11:28:42
Вам в @nodejs_ru. И вы неправильно понимаете асинхронность в ноде
Спасибо за ответ, с данного момента немного разобрался и всё работает :)

Undefined
03.08.2018
11:34:16
Спасибо ещё раз, учту Пойду с асинхронностью поразбираюсь

Banschikov
03.08.2018
11:37:48
Подскажите, плес. Делаю дамп базы данных при помощи mongodump с флагом —dumpDbUsersAndRoles Делаю restore на другой инстанс с монгой, в итоге захожу в БД, смотрю юзеров и там все пусто. Как правильно востановить на другом инстансе всех юзеров и роли?

Google
Banschikov
03.08.2018
11:39:27
Я правильно понимаю что инфа по всем юзером и ролям лежит в файле $admin.system.users.bson ?

yopp
03.08.2018
12:40:07
https://docs.mongodb.com/manual/reference/operator/aggregation/sum/

Здравствуйте. Можно ли сделать горизонтальное масштабирование MongoDB таким образом: Есть 2 хоста, на каждом из них создан Docker контейнер с MongoDB. К каждому контейнеру в директорию с БД примонтирована CephFS.
1) Это не будет горизонтальным масштабированием. Репликация это скорее HA & FT. 2) Не используйте сетевые файловые системы. Монга очень чувствительна к задержкам. Для горизонтального масштабирования вам уже посоветовали шардирование. Но это потребует существенно больше ресурсов

да
Это вообще недопустимо

Во-первых, в монге есть защита от запуска нескольких экземпляров монги с одним путём Во-вторых, это почти в любой субд является крайне рискованной идеей

Павел
03.08.2018
14:20:51
Гайс, вопрос про mongoose: шо делать если у тебя 50 сабсхем и все вкладываются друг в друга и в том числе сами в себя? КОнфликт можно разрешить с помощью ref, но тогда будут создаваться побочные коллекции и в круде придется джойнить релейшены. Есть способ их вкладывать без ref?



Павел
03.08.2018
14:34:52
Типа того)

Constantin
03.08.2018
14:41:44
Можно решить через промежуточный модуль, назовем его schemas.js Он просто экспортирует наружу пустой объект. Есть модуль, который сделает require (import) в себя schemas.js и все схемы, после чего положит все схемы в объект который был импортирован из schemas.js и экспортируем этот же объект. Внутри схем импортим в себя не конкретные схемы, а schemas.js Во внешнем коде (например где из схем создаете модели), импортите тот модуль, который импортил в себя все.

Мы всегда так решали циклические зависимости. Как это сделать на TypeScript вместо JS, не скажу, так как пишу на чистом, но вроде можно сделать экспортируемый объект — any или Map

Mongoose делает примерно также, вы когда модель объявляете через model, он в mongoose.models кладет

Constantin
03.08.2018
17:18:10
могнус же медленнее нативного драйвера?
Монгус использует нативный драйвер

yopp
03.08.2018
18:03:53
Сейчас ответ бота выключу

+

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