我在MongoDB中有一个涉及大量电子邮件的数据集,我需要能够将电子邮件添加到集合中,并能够检查某些电子邮件是否在集合中。我想过用这样的文档结构:
{'key':'foo','emailils':['mail@one.com','mail@two.com',...]}
并使用$ addToSet和$ in。但问题是Mongo有4MB的文件限制,如果有很多电子邮件,那还不够。我可以拆分它的信息键/电子邮件部分,但我担心它会使两个匹配(因为电子邮件现在不在一个地方)和插入(因为我需要检查唯一性)较慢。那么,最好的方法是什么?
答案 0 :(得分:1)
根据您将拥有多少组电子邮件,您可以将每组电子邮件设为一个集合,其中每个文档仅包含电子邮件地址。然后,您可以在电子邮件地址上创建唯一索引:
db.foo.ensureIndex({email:1},{unique:true})