В go драйвере при вызове col := k.Db.Collection(fmt.Sprintf("profile_%d",

k.ID))
идет неявное создание коллекция??? ответа в документации ненашел

16 ответов

11 просмотров

Да, в go драйвере для MongoDB при вызове col := k.Db.Collection(fmt.Sprintf("profile_%d", k.ID)) происходит неявное создание коллекции, если она еще не существует. В документации нет явного упоминания этого поведения, но оно соответствует стандартной логике работы драйвера MongoDB. При обращении к коллекции, если она уже существует, то она будет открыта для чтения и записи. Если коллекция не существует, она будет автоматически создана при первой операции записи в нее. Если требуется явно создать коллекцию до выполнения операций с ней, можно использовать метод CreateCollection для объекта базы данных: k.Db.CreateCollection(fmt.Sprintf("profile_%d", k.ID))

Kino Recovery- Автор вопроса

а как проверить,что она ужесть,без перебора у меня сотни тысяч коллекций

Kino Recovery
а как проверить,что она ужесть,без перебора у меня...

Если у вас есть сотни тысяч коллекций, и вы хотите проверить, есть ли в них определенная коллекция, без перебора всех элементов, вы можете воспользоваться одним из следующих подходов: 1. Используйте хэш-функцию: Создайте хэш-функцию, которая будет преобразовывать каждую коллекцию в уникальное число. Затем создайте хэш-таблицу, в которой ключами будут значения хэш-функции, а значениями - сами коллекции. При проверке существования коллекции вы сможете быстро найти нужный ключ в хэш-таблице и, если ключ найден, коллекция существует. 2. Используйте структуры данных с быстрым доступом: Используйте специализированные структуры данных, такие как деревья поиска или битовые векторы, которые позволяют быстро проверять наличие элементов. Имейте в виду, что предварительная обработка данных может потребоваться для построения этих структур, но затем проверка существования будет более эффективна. 3. Используйте индексирование: Если у вас есть критерии или метаданные, которые вы можете использовать для быстрой фильтрации коллекций, вы можете построить индексы или создать каталоги, чтобы быстро найти нужные коллекции без необходимости перебора всех коллекций. В зависимости от конкретной задачи и доступных данных, один из этих подходов может быть более эффективным.

Хотел как то помочь.

Komyob Fayzulloev
Хотел как то помочь.

Если используете чатгпт не копируйте ответ как есть - читайте ответ, переваривайте и выдавайте то что является корректной частью, если оно там действительно есть. Не перекладывайте часть с оценкой адекватности ответа безумной нейронки людям которые обращаются за помощью и не в состоянии отсечь дичь.

Kino Recovery
а как проверить,что она ужесть,без перебора у меня...

Сам факт того что у вас сотни тысяч коллекций говорит что проблема с проектированием и на этом фоне потребность проверять перебором наличие коллекции вполне нормальная плата.

Kino Recovery- Автор вопроса
Nick
Сам факт того что у вас сотни тысяч коллекций гово...

Ты предлагаешь мне миллионы документов в одну коллекцию скинуть?

Kino Recovery- Автор вопроса
Komyob Fayzulloev
Хотел как то помочь.

Спасибо вам огромное, за старание, но пока chatgpt конечно дополняет наш мозг, но не заменяет его

Kino Recovery- Автор вопроса
Nick
Сам факт того что у вас сотни тысяч коллекций гово...

Действительно у меня достаточно мало опыта общения с монгой. Не могли бы вы рассказать почему такое большое количество коллекций в одной базе это плохо

Kino Recovery
Действительно у меня достаточно мало опыта общения...

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

Kino Recovery
Действительно у меня достаточно мало опыта общения...

расскажите почему у вас так много коллекций? по какому признаку они разделены? ну и тут назревает важный вопрос не путаете ли вы коллекции с документами в коллекции?

Kino Recovery- Автор вопроса
Nick
расскажите почему у вас так много коллекций? по ка...

источников сотни тысяч из разных регионов, данных очень много, один "кадр" из источника, это документ, с динамическим набором полей. Таких "кадров" от десятков до 300 сотен в день. История с 2018 по сегодня. Задача: дать датасатанистам, доступ к этим данным. идея в том, что 1 источник ==1 коллекция

Кроме ДСов с данными ктото работает?

Kino Recovery- Автор вопроса
Nick
Кроме ДСов с данными ктото работает?

да, сбоку должен быть микросервис веб морды с elk

Похожие вопросы

Обсуждают сегодня

Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Ребят, а больше никто поработать не хочет? Кто свободен?
AIZ
4
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
@Miro_Mx ffmpeg в списке устройств ее не видит, там только обычная камера и виртуальная от obs. может я что-то не так делаю? ffmpeg -list_devices true -f dshow -i dummy
Arkadiy
3
Карта сайта