嵌入式与链接
我正在寻找以最快的方式搜索新闻稿文档以获取已连接的电子邮件。到目前为止,我已经使用MongoMapper将一个文档用于Newsletter,另一个用于Email。 + 100k电子邮件变得非常慢。
我想也许将电子邮件嵌入Newsletter中的数组可能会更快 因为我真的只对这封电子邮件感兴趣('someemail@email.com') 并没有任何逻辑。
1)是否有可能在一个文档中嵌入多达100k-500k的电子邮件? 2)Mongoid是否更好/更快?
如果通过询问
,我正在添加电子邮件email = newsletter.emails.first(:email => 'someemail@email.com')
unless email
email = Email.new(:email => 'someemail@email.com', :newsletter_id => self.id)
email.save
end
我认为这是一切都开始受到伤害的地方。
以下是他们的联系方式 班级通讯 包括MongoMapper :: Document 很多:电子邮件 ... 端
Class Email
include MongoMapper::Document
key :email, String
key :newsletter_id, ObjectId
belongs_to :newsletter
end
希望得到任何帮助:)
答案 0 :(得分:0)
目前MongoDB的最大文档大小为16mb,MongoMapper或Mongoid对此没有任何影响。
请参阅http://www.mongodb.org/display/DOCS/Documents
嵌入式文档应该相当快,如果你能够在限制范围内容纳所有电子邮件,那么可能会很紧张。
如果要存储整个电子邮件,为什么不只是存储一个数组,或者只是嵌入电子邮件地址和电子邮件地址,并参考完整的电子邮件。
然后,您可以获得所需的速度优势,并在简报之外保持可以访问的电子邮件。