質問

埋め込まれたリンク

接続された電子メールのニュースレタードキュメントを検索する最速の方法を探しています。これまでのところ、ニュースレター用のドキュメントと電子メール用のドキュメントを含むMongomapperを使用しています。これは、+100Kメールで非常に遅くなっています。

電子メール(「someemail@email.com」)に本当に興味があり、その周りにはロジックではないので、ニュースレター内の配列に電子メールを埋め込むのが速いと思っていました。

1)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

そして、私はこれがすべてが傷つき始めるところだと思います。

Connected Connected Class Newsletterが含まれている方法はあります。Mongomapper:: Document Many:emails ... End

Class Email
   include MongoMapper::Document
   key :email, String
   key :newsletter_id, ObjectId
   belongs_to :newsletter
end

これについてどんな助けをするのが大好きです:)

役に立ちましたか?

解決

Mongodb、Mongomapper、またはMongoidの最大ドキュメントサイズ16MBは現在、これに違いはありません。

見る http://www.mongodb.org/display/docs/documents

ただし、埋め込みドキュメントは、制限内のすべての電子メールを取り付けることができれば、圧迫される可能性がある場合があります。

電子メール全体を保存することが多くの場合、アレイを保存するか、完全な電子メールを参照してニュースレターを使用して電子メールアドレスを埋め込んだだけではありません。

その後、必要な速度の優位性を取得し、ニュースレターの外でメールにアクセスできるようにすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top