Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在大型mongoDB集上嵌入vs链接(ruby)_Ruby_Mongomapper_Mongoid - Fatal编程技术网

在大型mongoDB集上嵌入vs链接(ruby)

在大型mongoDB集上嵌入vs链接(ruby),ruby,mongomapper,mongoid,Ruby,Mongomapper,Mongoid,嵌入式vs链接 我正在寻找最快的方式来搜索一个连接电子邮件的新闻稿文档。到目前为止,我已经使用MongoMapper,其中一个文档用于时事通讯,另一个文档用于电子邮件。10万封电子邮件的速度越来越慢 我在想,也许把电子邮件嵌入新闻简报中的数组会更快 因为我只对电子邮件感兴趣someemail@email.com') 没有任何逻辑 1) 是否有可能在一个文档中嵌入多达100k-500k封电子邮件? 2) Mongoid在这方面更好/更快吗 如果邮件不在收藏中,我会通过询问添加邮件 email =

嵌入式vs链接

我正在寻找最快的方式来搜索一个连接电子邮件的新闻稿文档。到目前为止,我已经使用MongoMapper,其中一个文档用于时事通讯,另一个文档用于电子邮件。10万封电子邮件的速度越来越慢

我在想,也许把电子邮件嵌入新闻简报中的数组会更快 因为我只对电子邮件感兴趣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::文档 很多:电子邮件 ... 结束


希望您在这方面提供帮助:)

目前MongoDB的最大文档大小为16mb,MongoMapper或Mongoid对此没有影响

不过,如果你能把所有的电子邮件都放在限制范围内,那么嵌入文档的速度应该会快得多

如果存储整个电子邮件太多了,为什么不存储一个数组,或者将电子邮件地址嵌入时事通讯中,并引用完整的电子邮件呢


然后,您可以获得所需的速度优势,并在新闻稿之外保持电子邮件的可访问性。

目前MongoDB的最大文档大小为16mb,MongoMapper或Mongoid对此没有影响

不过,如果你能把所有的电子邮件都放在限制范围内,那么嵌入文档的速度应该会快得多

如果存储整个电子邮件太多了,为什么不存储一个数组,或者将电子邮件地址嵌入时事通讯中,并引用完整的电子邮件呢


然后,您可以获得您想要的速度优势,并在通讯之外保持电子邮件的可访问性。

谢谢您的回复。实际上,我最终创建了一个文档,其中包含一系列可供参考的电子邮件。大约12万封电子邮件将打破文档大小限制,因此在极少数情况下创建新的参考文档是有一定逻辑的。谢谢您的回复。实际上,我最终创建了一个文档,其中包含一系列可供参考的电子邮件。大约12万封电子邮件将打破文档大小限制——因此,在极少数情况下,创建新的参考文档是有一定逻辑的。
Class Email
   include MongoMapper::Document
   key :email, String
   key :newsletter_id, ObjectId
   belongs_to :newsletter
end