Konstantin
папки дата нет
GG
блин да, я ищу /data/db, а там нет, подумал может где-то в другом месте она еще может находится
inqfen
inqfen
inqfen
И даже сказала как переопределить, если база в другом каталоге
GG
она у меня до этого не запускалась, я нагулил решение пролемы, и вообщем ввел команду mongod --repair, могла ли эта команда стереть мои бд?
inqfen
И каталог удалить и в сервер наложить, ага. Нет, repair твои каталоги не должен удалить
Андрей
Only use mongod --repair if you have no other options. The operation removes and does not save any corrupt data during the repair process.
Пути с файловой системы не должно трогать.
GG
Андрей
Конечно могла
Андрей
Перед рипэйром необходимо копировать весь БД путь в отдельное место
Андрей
А покорапчены ли были ваши БД откуда ж мы можем знать
Вовчик
Всем привет, хотел спросить совета насчёт структуры базы данных используемой в проекте. Дело обстоит так: у нас таблица с категориями товаров, в этой таблице есть также и подкатегории, которые от родительских отличаются лишь полем { isMain: false }. Чтобы связать категорию и ее подкатегории, в основной категории есть поле subcategories, в котором хранятся ID дочерних категорий. Как по мне эта структура немного странновата. Потому что на фронте не всегда нам нужны все категории с их подкатегориями, но часто нужна единичная категория с ее дочерними подкатегориями, что приводит к нескольким запросам вместо одного: один на то чтобы достать категорию, и еще один чтобы достать все подкатегории, чьи ID хранятся в поле { subcategories } основной категории. Я предложил использовать virtual свойства в монгусе, и разделить эту таблицу на две отдельные с Категориями и Подкатегориями, и добавить Подкатегориям поле parentCategory с ID родительской категории, связав их. На что мне наш базист сказал что это не есть гуд дробить таблицы, поля у которых похожи. Проблема еще возникает на админке со стороны UI, так как немного тяжело создавать категории и в них же добавлять такие же категории, при этом не сделав UI громоздким, а наоборот более реюзабельным. Стоит ли прислушаться базиста и дальше страдать на фронте или сделать по-своему?
Спасибо за любые советы.
Nick
Всем привет, хотел спросить совета насчёт структуры базы данных используемой в проекте. Дело обстоит так: у нас таблица с категориями товаров, в этой таблице есть также и подкатегории, которые от родительских отличаются лишь полем { isMain: false }. Чтобы связать категорию и ее подкатегории, в основной категории есть поле subcategories, в котором хранятся ID дочерних категорий. Как по мне эта структура немного странновата. Потому что на фронте не всегда нам нужны все категории с их подкатегориями, но часто нужна единичная категория с ее дочерними подкатегориями, что приводит к нескольким запросам вместо одного: один на то чтобы достать категорию, и еще один чтобы достать все подкатегории, чьи ID хранятся в поле { subcategories } основной категории. Я предложил использовать virtual свойства в монгусе, и разделить эту таблицу на две отдельные с Категориями и Подкатегориями, и добавить Подкатегориям поле parentCategory с ID родительской категории, связав их. На что мне наш базист сказал что это не есть гуд дробить таблицы, поля у которых похожи. Проблема еще возникает на админке со стороны UI, так как немного тяжело создавать категории и в них же добавлять такие же категории, при этом не сделав UI громоздким, а наоборот более реюзабельным. Стоит ли прислушаться базиста и дальше страдать на фронте или сделать по-своему?
Спасибо за любые советы.
а вы для заполениеня подкатегорий используете populate от монгуса?
Вовчик
Нет, они такие же категории, просто имеют в поле isMain значение false
Вовчик
Если переделать под virtual то тогда да они будут попюлейтиться, но это нада разбить таблицу с категориями и подкатегориями на две отедльные
Вовчик
Что собственно я и предложил своему базисту, но он сказал что дробить таблицы не очень хорошо, а раз подкатегории по структуре такие же как категории, то давайте хранить всё вместе
Вовчик
Такой подход будет лучше или всё же хранить всё вместе, и чтобы достать подкатегории какой-нибудь категории задавать isMain: false и искать айди подкатегории в масиве subcategories родительской категории?
s
всем привет, у меня такой кейс: пишу приложение на ноде, использую nestjs. Раз в н-ное время получаю все документы из коллекции, делаю с некоторыми из них определенные манипуляции, сохраняю их в массив и передаю в другое место, где тоже есть бд. И нужно найти в бд те же документы, что пришли в массиве и отредактировать их в соответствии с массивом. как оптимальнее всего это сделать?
Dmitry
s
спасибо
Viktar
Добрый день, есть ли смысл с точки зрения перформанса вытаскивать в find определенные поля или весь документ?размер документа примерно 70кб
Viktar
Но их около 400 млн
Daniil
Viktar
s
Vadzim
s
да
а как можно балк использовать здесь?
s
то есть data всегда разная по объему
Daniil
Daniil
После цикла взываете балк переливая массив операций
Daniil
Но в целом балк это чисто сетевая оптимизация поэтому если операций у вас там немного, то смысла в этом нет просто
s
ну там может быть от 1к до 30к операций за раз
Daniil
s
понял
s
благодарю
s
s
а
s
я не заметил что еще внутри цикла нахожусь
s
bulkWrite выполняется как один запрос?
s
а за счет чего выигрыш?
Sardor
Меньше нагрузки на сеть , со стороны клиента уходит всего лишь один запрос
Sardor
Bulk накапливает множество операции а после запроса выполняет на сервер БД
s
спасибо за ответ
Bogdan
Привет, что дешевле/лучше/быстрее, .insertMany() на 100 элементов или на 1000?
Bogdan
Сергей
Всем привет.
Может кто-то подскажет как можно с минимальными издержками почистить по времени нагруженную базу mongo объемом 1.5 Тб?
Версия 4.0.19, база с ReplicaSet`ом.
Nick
Nick
на 1.5Тб колскан на любом запросе положит базу, особенно если не sdd, а значит без индексов делать нечего.
Bogdan
Для упорядочивания записей по ключу, в данном случае по дате
Александр
_id содержит в себе дату)
Nick
_id содержит в себе дату)
если у вас задача удалить конкретные данные, то дата из _id возможно не будет отвечать бизнес критерию и под него может попасть лишнее и тогда будет потеряд данных
Nick
дату из id можно брать когда данные за промежуток плюс-минус несколько минут не критично потерять. Как вариант для случаев простой очистки очень старых данных без доп критериев подойдет
Александр
Откуда "плюс несколько минут"?
Nick
_id может заполняться с клиента или с сервера или вразнобой если разные клиенты работают с БД и при разных языках/драйверах с не одинаковым поведением (это допускается в отношении _id). Соответвенно время на сервере/клиенте можете расходиться как минмум на секунды и скорее всего до минуты. Несколько минут - запущенные случаи, когда полностью отсутвует синхронизация времени между клиентом и сервером БД
Александр
Если всё тоже самое применить к полю с датой не будет тех же самых "плюс несколько минут"?
Nick
Привет. Есть вопрос:
Я использую мангус для разработки. У него есть схемы и модели.
Но я захотел установить gui для визуализации (робо3т или атлас, не важно). Проблема в том, что когда я создаю новую коллекцию через gui, я не могу получить доступ к этим данным в мангусе. Даже если я и пишу схему с моделью с тем же именем, все равно получаю пустой массив.
Как мне синхронизировать этот процесс? Я хочу руками заполнять БД из gui, а потом спокойно писать запросы через мангус
Сергей
Nick
Сергей
Alex
Посоветуйте хостинг для MongoDB? Думаю воспользоваться услугами от mail.ru cloud solutions. Может кто-то это тоже использует?
Vasily
Всем привет!
как понять откуда это соединение с какого ip?
Oleg
nortimg
Всем привет! Проблемы с типизацией схемы в TypeScript.
Использую пакет mongoose.
Создал следующую схему: https://pastebin.com/EJSyXTA6
Приложил все усилия, чтобы работал autocomplete при создании нового экземпляра модели, но ничего не выходит.
TypeScript не видит нужные мне поля. Что я сделал не так?
Daniil
StaniFe
Всем привет. Тут кто ни будь работает с монгой на c#?
Артем
StaniFe
ну может все равно сходство есть.
Как можно ускорить выборку по n фильтрам и сортировке (в последствии применяется take и skip)
Артем
через where
StaniFe
сейчас запрос на первых 20 (1 страница) элементах выполняется моментально, а запрос на 3000 странице выполняется под 12 секунд
Артем
плюс индекс не забудь навесить
StaniFe
да вроде уже на все навесил, но на последних страница ±10 секунд
Артем
Артем
skip take в монго не так работает как например в mssql
Артем
поэтому фильтруешь сразу через where