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

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

16 ответов

45 просмотров

Да, в 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

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

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

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Как думаете через какой сервис они верифицируют?
inc.
5
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Добрый день! Подскажите, каким сборщиком фронта для OctoberCMS кто пользуется? Я имею ввиду сборщики, с которыми можно работать по стандартной схеме директорий октября. Я испо...
Николай Афанасенко
2
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
Карта сайта