Встроенный против ссылки
Я ищу самый быстрый способ поиска связанного сообщения электронной почты в документе информационного бюллетеня. До сих пор я использовал MongoMapper с одним документом для информационного бюллетеня и другим для электронной почты. Это становится очень медленным с + 100k электронных писем.
Я подумал, что, возможно, будет быстрее встроить электронные письма в массив внутри информационного бюллетеня, поскольку меня действительно интересует только электронное письмо ('[email protected]'), а не какая-либо логика вокруг него.
1) Можно ли вообще встроить в один документ целых 100-500 тысяч писем? 2) Mongoid лучше / быстрее для этого?
Я добавляю письмо, если его еще нет в коллекции, спрашивая
email = newsletter.emails.first(:email => '[email protected]')
unless email
email = Email.new(:email => '[email protected]', :newsletter_id => self.id)
email.save
end
И я думаю, здесь все начинает болеть.
Вот как они связаны. Рассылка новостей класса включает MongoMapper :: Document many: emails ... end
Class Email
include MongoMapper::Document
key :email, String
key :newsletter_id, ObjectId
belongs_to :newsletter
end
был бы рад любой помощи в этом :)