0

JavaでMongoDbを使用するためにPlayフレームワークとPlay-Morphiaを使用しています。次のように定義されたエンティティメッセージを受け取りました。

@Entity
public class Message{
    public String senderId;
    public Date date;
    public String initiatorId;
    @Embedded public MessageBasicInfo basicInfo;
}

MessageBasicInfoは次のように定義されています。

public class MessageBasicInfo implements IModel{
    public HashMap<String, Boolean> recipients;
}

ここで、Mongoから、受信者のハッシュマップでの値が真であるメッセージのみを取得したいと思います。たとえば、リストでそれを行う方法は知っていますが、ハッシュマップオブジェクトを使用してそれを行う方法がわかりません。何か提案をいただければ幸いです。ありがとう。

4

1 に答える 1

0

HashMapはクエリを実行するのが非常に困難です。私はあなたがあなたのように再編成することをお勧めしMessageBasicInfoます

public class MessageBasicInfo implements IModel {
   public String key;
   public Boolean value;
}

そして、次の方法ですべてのtrue値メッセージを照会できます。

Message.q("basicInfo.value", true).asList();
于 2013-03-17T19:26:05.500 に答える