У меня есть набор данных в MongoDB, который включает в себя большой набор электронных писем, и мне нужно иметь возможность добавлять электронные письма в набор и проверять, находятся ли определенные электронные письма в наборе. Я думал о том, чтобы делать с такой структурой документов:реализация большого набора в MongoDB
{'key': 'foo', 'emails': ['[email protected]', '[email protected]', ...]}
и используйте $ addToSet и $ in. Но проблема в том, что у Mongo есть ограничение на 4 Мбайт документа, и если есть много писем, этого может быть недостаточно. Я мог бы разделить его по ключевым словам/частям электронной почты, но я обеспокоен тем, что он будет делать оба соответствия (поскольку электронные письма сейчас не в одном месте) и вставка (поскольку мне нужно будет проверить уникальность) медленнее. Итак, что было бы лучшим способом сделать это?
Существует много наборов, каждый со своим собственным ключом (поиск является withis писем с тем же ключом). Индекс может работать, но я беспокоюсь, что он будет медленнее, поскольку электронные письма не будут храниться вместе. – StasM
Если вы только заботитесь об уникальности внутри одной коллекции, создание уникального индекса происходит так же быстро, как и в случае с ним. Именно цель использования индексов. –