代码之家  ›  专栏  ›  技术社区  ›  StasM

MongoDB中的大集合实现

  •  1
  • StasM  · 技术社区  · 14 年前

    我在MongoDB中有一个涉及大量电子邮件的数据集,我需要能够向该数据集添加电子邮件,并能够检查某些电子邮件是否在该数据集中。我想这样处理文档结构:

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

    并使用$addToSet和$in。但问题是,Mongo有4MB的文档限制,如果有很多电子邮件,这可能是不够的。我可以拆分it信息键/电子邮件部分,但我担心这会使匹配(因为电子邮件现在不在一个地方)和插入(因为我需要检查唯一性)都变慢。那么,最好的办法是什么呢?

    1 回复  |  直到 14 年前
        1
  •  1
  •   David O.    14 年前

    根据你将要收到的电子邮件的数量,你可以把每一封电子邮件做成一个集合,其中每个文档只包含电子邮件地址。然后可以在电子邮件地址上创建唯一索引:

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