私はPlayで作成した大きなエンティティを持っています! Javaのフレームワークであり、MorphiaとMongoDBを使用してデータベースから特定のフィールドのみを取得したいと考えています。エンティティ自体は非常に大きく、多くのフィールドを含んでいるので、そこから1つのフィールドだけを取得することで、アプリケーションのパフォーマンスを向上させたいと考えています。MorphiaとJavaのPlayフレームワークを使用してエンティティから特定のフィールドを取得する方法
ここ
は、私は私のクラスShop
を持っている分野の一部です...私はそれが可能である知っているが、私はそれを行うために正確にどのように把握することはできません。あなたが見ることができるように
public String imagePath;
public String profileImagePath;
public String Motto;
@Reference
public Category primeCategory;
public boolean isOnline;
primeCategory
フィールドは、取得したいCategory
エンティティです。
Datastore ds = null;
Shop shop = ds.createQuery(Shop.class).retrievedFields(true, "primeCategory").get();
私はまさに私がここにきてる何をするかわからない: 私はMorphiaのウェブサイトでそれを達成すると仮定何かを見ました。
これが方法であり、それをいかに正確に行うべきか、そして例を挙げると、誰かが私に説明することができれば素晴らしいことでしょう。
{
"_id":ObjectId("..."),
"primeCategory":{
...
},
"Other_field_1":"....",
"Other_field_2":"...."
}
そして、あなたは良い試みを持っている:
私は確かにチェックアウトします.JongoはODMの代替品です。 http://jongo.org/ と https://github.com/alexanderjarvis/play-jongo morphiaのATMに多くの積極的な開発がないという理由だけで。 – Marc
あなたがしていることが正しいように見えます。 'shop'オブジェクトはクエリnullによって返されますか?そうでない場合、 'shop.primeCategory'はnullですか?すべてのShopオブジェクトを検索するクエリーを作成していますが、 'get()'を呼び出すと、最初のShopオブジェクトだけが返されます。 – InPursuit
shopとshop.primeCategoryはnullではありません。私はこれがそれを行う方法であるかどうかを知りたいのですが、何か不足しているかもしれません... – elad