реализация большого набора в MongoDB - PullRequest
1 голос
/ 16 июля 2010

У меня есть набор данных в MongoDB, который включает в себя большой набор электронных писем, и мне нужно иметь возможность добавлять электронные письма в набор и иметь возможность проверить, есть ли определенные электронные письма в наборе.Я думал о работе со структурой документа следующим образом:

{'key': 'foo', 'emails': ['mail@one.com', 'mail@two.com', ...]}

и используйте $ addToSet и $ in.Но проблема в том, что Mongo имеет ограничение на размер документа 4 МБ, и если есть много электронных писем, этого может быть недостаточно.Я мог бы разделить его на информационные ключи / части электронной почты, но я боюсь, что это приведет к медленному согласованию (так как электронные письма теперь не в одном месте) и вставке (поскольку мне нужно будет проверять уникальность).Итак, что будет лучшим способом сделать это?

1 Ответ

1 голос
/ 17 июля 2010

В зависимости от того, сколько наборов электронных писем вы собираетесь получить, вы можете сделать каждый набор электронных писем коллекцией, в которой каждый документ состоит только из адреса электронной почты. Затем вы можете создать уникальный индекс на адрес электронной почты:

db.foo.ensureIndex({email:1},{unique:true})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...