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

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

16 ответов

49 просмотров

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

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
1. https://www.kaggle.com/code/ahmadrezagholami2001/housing-estimation-linear-regression 2. https://www.kaggle.com/code/ahmadrezagholami2001/uncovering-quality-in-wines-logis...
Ahmadreza
1
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта