Vened
Привет. А подскажите, есть какие-то инструменты анализа логов монги?
Нуриддин
Kirilll
Эрл
йобаный насос. Сегодня узнал что существует монго компасс...до этого как неандерталец чтобы проверить что там у меня лежит и как я писал запросы в терминале ...
Нуриддин
Эрл
+
Kirilll
По мне так в терминале удобно вполне
Нуриддин
Нуриддин
Кроме анализа структуры collections и удобного конструктора аггригации сложно представить других задач где он может быть полезнее консоли
Эрл
Эрл
Выглядит как минимум приятнее и удобнее, чем запросы писать
Нуриддин
Ага и который подскажет в каком моменте началась "ошибка"
Нуриддин
Мониторинг, степень вовлечённости в структуру ... Они все решаются администратором, чья задача заключается в том чтобы "положи-возьми" не переставала работать или была в сохранности в случае багов
Ящик водки
вечер добрый
подскажите, запамятовал, коллекции лежат отдельным файлами?
это вытекающий вопрос из поиска оптимизации.
корневой вопрос: имеет-ли смысл rw данные разносить, что бы повысить доступность для r? естественно, делая их связными по идентификаторам
Нуриддин
Нуриддин
Да но она же работает пока сессия в порядке, а для администрирования иногда нужны более подробные данные
Нуриддин
Andrey
Ящик водки
а курсоры у нас в монге отдельно 1 в рамках 1 сессии?
или 1 на 1 подключение? где сессия это пул соответственно
Andrey
Только я ее искал первый раз минут 5 в интерфейс «втыкал»
Kirilll
Ui это всегда +1 точка отказа со своими заморочками
Нуриддин
Andrey
Нуриддин
Вот глава об курсорах, ознакомьтесь. Вроде это должно ответит на вопрос
Нуриддин
Andrey
Хаха, то же самое
Вообщк интерфейс - местами так себе, много типа удобного, но после многих лет робомонги, как-то не то.
Ящик водки
Нуриддин
Нуриддин
Cursors — MongoDB Manual
https://www.mongodb.com/docs/v3.0/core/cursors/
Нуриддин
Это статейка уже не совсем из документации, но тут описана работа курсора
Ящик водки
придется похоже в жабу на гите нырять...
Nempah
может ли кто-нибудь написать мне код, который я могу написать для опции «filter» на компасе mongodb, который сгенерирует мне, наконец, добавленные 16000 документов
Kvhqm
Nempah
??
я получил эту ошибку, даже если учетные данные верны: ошибка подключения к MongoDB querySrv EREFUSED _mongodb._tcp.cluster0.9ykvnto.mongodb.net
Matvey
Всем привет, встретился с проблемой при подключении к бд со сервера node js. Когда запускаю локально, то подключение успешное. Но если заливаю на сервак, то ошибка такого плана:
MongooseServerSelectionError: Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist
(В Network Access я указал что доступ к базе откуда угодно(0.0.0.0/0))
Matvey
Не сталкивались с таким?
Daniil
Matvey
Да, дело в том что все работало нормально, но вчера вечером вдруг появилась эта ошибка
محمد
Hello
محمد
Я пытаюсь скачать mongodb compass, и когда я скачал его с сайта, он скачал dmg-файл, но я не могу с ним справиться.
Ivan
محمد
محمد
Я хочу работать над атласом Монго
محمد
Tetra
محمد
محمد
Когда я скачал, это был файл dmg, и я не смог его установить.
محمد
محمد
Как я могу его установить?
محمد
Дмитрий
Коллеги, доброго дня, подскажите, можно ли добиться такого эффекта, чтобы mongodb выполняла операции над документом по очереди ?)
Суть:
Возьмем явный пример, это ситема лайков:
Есть коллекция постов, и есть пост,
На этот пост пожно ставить лайки,
Моделируем ситуацию:
на один и тотже пост, практически одновременно пришло два запроса, то есть два юзера обратились к одному и тому же посту,
и вот получается что они взяли старое занчение и начали работать с ним (так как предыдущий запрос еще не обновил документ),
и получается, что вместо двух лайков - будет только 1 (ибо все запросы стартовали со значением 0)
Или такое не решить на уровне самой Монги ?)
Nick
Коллеги, доброго дня, подскажите, можно ли добиться такого эффекта, чтобы mongodb выполняла операции над документом по очереди ?)
Суть:
Возьмем явный пример, это ситема лайков:
Есть коллекция постов, и есть пост,
На этот пост пожно ставить лайки,
Моделируем ситуацию:
на один и тотже пост, практически одновременно пришло два запроса, то есть два юзера обратились к одному и тому же посту,
и вот получается что они взяли старое занчение и начали работать с ним (так как предыдущий запрос еще не обновил документ),
и получается, что вместо двух лайков - будет только 1 (ибо все запросы стартовали со значением 0)
Или такое не решить на уровне самой Монги ?)
обычный апдейт с $inc на стороне монги. Либо транзакции
yopp
Коллеги, доброго дня, подскажите, можно ли добиться такого эффекта, чтобы mongodb выполняла операции над документом по очереди ?)
Суть:
Возьмем явный пример, это ситема лайков:
Есть коллекция постов, и есть пост,
На этот пост пожно ставить лайки,
Моделируем ситуацию:
на один и тотже пост, практически одновременно пришло два запроса, то есть два юзера обратились к одному и тому же посту,
и вот получается что они взяли старое занчение и начали работать с ним (так как предыдущий запрос еще не обновил документ),
и получается, что вместо двух лайков - будет только 1 (ибо все запросы стартовали со значением 0)
Или такое не решить на уровне самой Монги ?)
самый простой вариант использовать атомарную операцию $inc: https://www.mongodb.com/docs/manual/reference/operator/update/inc/
Она добавит число значению, вне зависимости от текущего значения на начало операции
Дмитрий
обычный апдейт с $inc на стороне монги. Либо транзакции
пробовал вот так:
const session = await db.startSession();
session.startTransaction();
// код обработки запроса ....
await session.commitTransaction();
session.endSession();
res.status(200).json({ message: '' });
но показалось, что вроде нет нужного эффекта, тестировал топорно:
быстро отправлял до 10 запросов и итоговый счетчик был меньше, чем количество запросов, типа отправил 5 запрсов, а лайков вышло 4,
поэтому показалось, что может такой варик не катит
Дмитрий
Mark
Всем привет. Подскажите, у меня есть коллекция виджетов, где будет очень много доков с разным типом. Но, скорее всего, у меня в бд кроме виджетов особо коллекций и не будет. Есть ли смысл вместо ключа с типом, вынести доки в разные коллекции?
Vova
Привет! Не получается вывести ноду из реплсета. Она была ранее выведена, сейчас догоняет остальных. При тушении ее, все становятся секондари. Что делать?
??
Не сталкивались с таким?
Когда я пытался сегодня подключиться к своей базе данных, я получил эту ошибку. Я сделал (0.0.0.0/0), но ничего не изменилось.
yopp
Всем привет. Подскажите, у меня есть коллекция виджетов, где будет очень много доков с разным типом. Но, скорее всего, у меня в бд кроме виджетов особо коллекций и не будет. Есть ли смысл вместо ключа с типом, вынести доки в разные коллекции?
Если виджетов в одном документе будет на пару килобайт, то не нужно выносить в другую коллекцию.
По поводу схемы, отмечу что удобнее использовать массив, формата {name:, type:}. Иначе не получится проиндексировать по docN, так как монга не умеет индексировать путь к полю, а только его содержимое
yopp
Mark
yopp
Три. Вообщем я удалил случайно вторую. Потом оставил одного мастера и вторую добавил с помощью force : true
Проблема решилась? Или у вас так и не может третья нода встать в кластер? Если в кластере нет majority, в вашем случае это две ноды в состояниях PRIMARY и SECONDARY, то нового PRIMARY кластер выбрать не сможет. Если третья нода все еще может синхронизироваться с кластером, то как только у неё статус поменяется с STARTUP2 на SECONDARY, пройдут выборы и будет назначен новый PRIMARY. Если нужно прямо сейчас поднять кластер, то его нужно переконфигурировать в single node replica set, при этом оставив две вторые ноды как hidden, с priority:0, votes:0. Тогда они смогут все еще догнать оставшуюся живую ноду, но при этом кворум в кластере будет требовать только одного участника
yopp
После того как две оставшиеся ноды догонят праймари, снова переконфигурировать без hidden, с priority:1,votes:1 (или какие у вас значения были до отказа кластера)
Vova
Проблема решилась? Или у вас так и не может третья нода встать в кластер? Если в кластере нет majority, в вашем случае это две ноды в состояниях PRIMARY и SECONDARY, то нового PRIMARY кластер выбрать не сможет. Если третья нода все еще может синхронизироваться с кластером, то как только у неё статус поменяется с STARTUP2 на SECONDARY, пройдут выборы и будет назначен новый PRIMARY. Если нужно прямо сейчас поднять кластер, то его нужно переконфигурировать в single node replica set, при этом оставив две вторые ноды как hidden, с priority:0, votes:0. Тогда они смогут все еще догнать оставшуюся живую ноду, но при этом кворум в кластере будет требовать только одного участника
Пока третью вывел. Но ее нужно будет ввести. И пока она догоняет праймари, на нее идут запросы и все встаёт колом.
Vova
yopp
Есть еще вариант что праймари не хватает ресурсов на обслуживание еще и синхронизации
Vova
yopp
Посмотрите хватает ли IO: синхронизация, особенно если это initial sync, очень сильно нагружает диск. Initial Sync это по сути полное чтение всех коллекций. Такой профиль нагрузки может легко упереться в диски
Vova
Эрл
Ребята, а как лушче хранить данные? У меня есть заявки на сайте. Лучше создать коллекцию и держать там один документ с orders: [...] или для каждой заявки лучше новый док создавать
Эрл
Заявок около 3к штук на данный момент, в месяц по 600-800 поступает. при запросе они все нужны
Эрл
То есть достаются сразу все
Kirilll
Лучше заявку как отдельный документ добавлять
Фильтрация по массиву может стать проблемой