2011-06-28 8 views
3

MorphiaとMongodDBの両方のモジュールは、MongoDB用のJavaドライバのラッパーです。MorphiaとMongoDBモジュールのパフォーマンスの違いは、Playフレームワークでどのくらいですか?

しかし、私はMorphiaが照会の際に直接Java Listを与えないことに気付きました。それは私にクエリと呼ばれる複雑なオブジェクトを与えます。このオブジェクトでは、メソッドasList()を呼び出す必要があります。このメソッドは、Queryの各要素を繰り返し処理し、リストを生成します。私はこれがJavaのリストが必要な時にパフォーマンスに影響を与えることができると思います。 Morphiaがmongodbデータベースからデータを取得した時点でListを生成しないのはなぜかと思います。

答えて

3

理由は、データの使い方を決めるためです。 wikiにあるように、最初のオブジェクトはget()またはasKeyList()を使ってidのリストから取得できます。 List()として使用すると大きなセットの場合にはコストがかかることがあることを承知しています

私が理解している理由は、Queryオブジェクトを再利用している理由です。複雑なQueryオブジェクト(フィルタなど)を構築し、必要に応じて結果を取得することができます。リストされたメソッド(asListなど)がクエリオブジェクトに影響を与えないので、同じクエリから異なる結果セットを取得することさえできます。

クエリオブジェクトをたくさん再利用し、巨大なデータセットを返さない場合(これはあまりにも幸せにすべきではありません)、これは便利です。

関連する問題