yopp
Он вам скорее всего не нужен
tsar
мне нужно много писать в бд
Nick
кстати да здравая мысль)
tsar
не по одной записи
yopp
У вас записи по 20 байт?
yopp
BulkWrite это метод группировки вставляемых документов для передачи их по сети в одном логическом пакете. В самой монге это всё равно множество insert
Nick
а вы прям булк генерите?
yopp
Обработка ошибок в случае проблем со вставкой с Bulk операциями — ад
yopp
Вы собственно в этот ад и наступили.
yopp
Выбросьте BulkWrite и вставляйте обычным insert
tsar
у меня там по 20 записей каждую секнду
yopp
Если у вас монга не а китае с огромными задержками, разницы практически не будет
tsar
монга и скрипт на одном сервере
yopp
у меня там по 20 записей каждую секнду
Это вообще смысла не имеет
tsar
я боюсь что она выжрет мне всю память
yopp
BulkWrite требует больше памяти чем отдельные вставки
tsar
нашел проблему(
tsar
insert: key too large to index, failing
yopp
Монге ещё ваш пакет с документами буфферизовать надо
tsar
tsar
ой сори
tsar
не так кинул
tsar
http://prntscr.com/nm2f3c
tsar
еще утром использувалось 1гб
tsar
сейчас уже 6
tsar
это нормально?
Alexander
Монга выжирает всю память, которую найдёт. Это норма.
Den
Поэтому я импользую сторонний ресурс. Лучше отдельную машину для этого выделить.
tsar
подскажи какой норм?
Alexander
А вот булки мне местами ускорили скорость вставки небольших документов на треть. Правда очень давно мерял и с тех пор монга изменилась чуток...
tsar
я поправил булки работают
tsar
ускоряет в разы
Den
mlab.com - до 500 Мб бесплатно. Если надоест - свой виртуальный хостинг.
tsar
а нельзя зарезервировать память для монго? чтобы не юзало все
Alexander
Лимиты в k8s?
tsar
а причем k8s?
Alexander
Кубы позволяют ограничить ресурсы контейнеров.
Alexander
В т.ч. и память.
Alexander
Можно просто средствами докера это сделать.
tsar
понял, спасибо
tsar
я думал что в конфиге помжно указать просто скок можно юзать
tsar
tsar
на таком сайте png вместо svg((
Serhii
Slash in host identifier - err, не могу приконнектится к базе на проде, сделал encodeURIComponent для пароля, но все так же, кто подскажет в чем беда?
Ruslan
Привет! Может кто сталкивался: как в aggregate убрать объект если он пустой?
Ruslan
Нашёл решение, если кому будет интересно: { model: { $cond: { if: { $eq: [ "$model", {} ] }, then: "$$REMOVE", else: "$model" } } }
Ruslan
Ещё вопрос, как в aggregate сгенерировать ObjectId, может кто знает?
yopp
Ещё вопрос, как в aggregate сгенерировать ObjectId, может кто знает?
Новый — никак. Из 24 символьной hex строки можно получить с помощью $toObjectId
Ruslan
Спасибо! А hex случайный, как то можно сгенерировать, или перевести например текущую дату в hex ?
yopp
По-моему нет
Stas
Mongoose Подскажите, как лучше всего значение в бд поменять на противоположное? Если было true то обновить на false и наоборот
Nick
апдейтом
Nick
но если вы используете монгус, то используйте его
Stas
но если вы используете монгус, то используйте его
У меня получается 2 запроса к бд. Получаю объект, проверяю нужное мне свойство и если оно true то делаю апдейт на false иначе на true Это правильный алгоритм?
Nick
а вы не можете сразу выбрать объект с таким свойством?
Nick
зачем првоерят ьв коде если критерий уже ест ьи его можно указать в фильтре
Nick
если вы работает с конкретным документом и он используется дальше после сохранения, то через поиск-изменение-сохранение. Если операция разовая и дальше объект не нужен, или нужно много объектов изменить, то сделайте обычный апдейт
Stas
Хорошо, спасибо за подсказку
🤴👷‍♂️🦸‍♂️🧚‍♀️
Привет, извиняюсь если не по теме. Есть приложение, которое должно отдавать данные двух форматов - изображение + данные связанные с изображением. МонгоДБ с этим справиться или стоит смотреть в сторону каких-то облачных бд и стоит ли хранить эти данные отдельно, если по сути они связаны между собой? Задачка стоит настроить pub/sub поведение между приложениями с прослойкой в виде БД. Поясните как лучше такое реализовать. Масштаб данных ~ 1000 изображений в день
The first
Изображения всегда лучше хранить отдельно в файловой системе, а в бд хранить путь к ним
The first
У меня получается 2 запроса к бд. Получаю объект, проверяю нужное мне свойство и если оно true то делаю апдейт на false иначе на true Это правильный алгоритм?
Делаете 4 запроса: 1) собираете _id всех документов с true 2) собираете _id всех документов с false 3,4) апдейтете собранные айдишники на обратные значения
Dima
Всем привет! я новичек в работе с mongodb, у меня есть большая база данных и я ее хочу востановить из копии, но так вышло, что копия было создана полным копированием папки data, где лежали все коллекции, индексы и прочее, а не с помошью mongodump. Соответственно вопрос такой, будет ли такое работать(вставив старую папочку обратно) или бекап потерян?
Anonymous
не знаю, какой конкретно у тебя кейс, но у меня такое сработало на 3.6
Dima
не знаю, какой конкретно у тебя кейс, но у меня такое сработало на 3.6
ты что-нибудь дополнительно делал? или оно само все подхватило?
Anonymous
Кроме перезапуска монги, кажется, ничего существенного не делал
redwhite
Добрый! Есть вопрос. Используем AWS-скую documentdb, после одного из билдов любой запрос, внезапно, начал отдавать "Last error: Not authorized to execute command", без каких либо значимых изменений в коде. Приложуха на go, используем официальный mongo-go-driver, все завернуты в докер. Откат на предыдущие ревизии не помог. Причем не работает даже ping монги. Локально для разработки используем саму монгу, и все ок, все тесты проходят все дела. Есть еще пару сервисов которые подобные, там все работает как часы, правда они не обновлялись и не ребутались, т.к. есть подозрение, что они тоже могут перестать уметь в коннект. В ошибке, как видно, не указано ни базы, ни какая-то команда. Из консоли с теми же кредами все ок. Причем не работает как и на мастер юзере, так и на обычном юзере созданом без root роли, но с ролями dbWriteReadAllDatabases. Как думаете, issue скорее с documentdb? И что можно посмотреть в конфигах/логах чтоб как-то прояснить?
yopp
Добрый! Есть вопрос. Используем AWS-скую documentdb, после одного из билдов любой запрос, внезапно, начал отдавать "Last error: Not authorized to execute command", без каких либо значимых изменений в коде. Приложуха на go, используем официальный mongo-go-driver, все завернуты в докер. Откат на предыдущие ревизии не помог. Причем не работает даже ping монги. Локально для разработки используем саму монгу, и все ок, все тесты проходят все дела. Есть еще пару сервисов которые подобные, там все работает как часы, правда они не обновлялись и не ребутались, т.к. есть подозрение, что они тоже могут перестать уметь в коннект. В ошибке, как видно, не указано ни базы, ни какая-то команда. Из консоли с теми же кредами все ок. Причем не работает как и на мастер юзере, так и на обычном юзере созданом без root роли, но с ролями dbWriteReadAllDatabases. Как думаете, issue скорее с documentdb? И что можно посмотреть в конфигах/логах чтоб как-то прояснить?
Вопрос к AWS. Вы используете сторонее решение, которое не поддерживает большинство фич монги, которое сломалось. Готовьтесь к тому, что AWS на вас забьет или предложит купить план для поддержки. Вы зря в documentdb вписываетесь через монговское API, вам это гарантированно выйдет боком.
🤴👷‍♂️🦸‍♂️🧚‍♀️
Почему?
Говорят, что не выгодно
Dmitriy
Говорят, что не выгодно
правильно говорят, тарифный план клоудфларе в среднем выйдет дешевле чем место под базу + будет работать быстрее :) а в базу только ссылки
yopp
Говорят, что не выгодно
сколько у вас картинкок?
yopp
время разработчика тоже не бесплатное
yopp
абстрактную задачу в вакууме невозможно оценить