6

Play で作成した大きなエンティティがあります。Morphia と MongoDB を使用してデータベースから特定のフィールドのみを取得したいと考えています。エンティティ自体は非常に大きく、多くのフィールドが含まれているため、1 つのフィールドのみを取得してアプリケーションのパフォーマンスを改善したいと考えています。

私はそれが可能であることを知っていますが、それを行う方法を正確に理解することはできません...
クラスにあるフィールドの一部を次に示しますShop

public String imagePath;
public String profileImagePath;
public String Motto;
@Reference
public Category primeCategory;
public boolean isOnline;

ご覧のとおり、primeCategoryフィールドはCategory取得したいエンティティです。Morphiaのウェブサイトでそれを達成すると思われるものを見ました:

Datastore ds = null; 

Shop shop = ds.createQuery(Shop.class).retrievedFields(true, "primeCategory").get();

ここで何をしているのか正確にはわかりません。

これが方法であり、どのように正確に行うべきかを誰かが説明し、例を提供してくれれば素晴らしいことです.

4

2 に答える 2

6

これを試して

Shop.createQuery().retrievedFields(true, "primeCategory").get()
于 2012-12-25T19:06:49.633 に答える
0
Shop shop = ds.createQuery (Shop.class).retrievedFields (true,"primeCategory","Other_field_1","Other_field_2").get();

次のようなドキュメントを取得します。

{
     "_id":ObjectId("..."),
     "primeCategory":{
                       ...
                     },
     "Other_field_1":"....",
     "Other_field_2":"...."

}

そして、あなたは良い試みをしています。

于 2013-08-02T08:39:05.860 に答える