0

我正在使用 Play 框架和 Play-Morphia 在 Java 中使用 MongoDb。我得到了一个定义如下的实体消息:

@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 中检索其在收件人哈希图中的值为 true 的消息。例如,我知道如何在列表中执行此操作,但不知道如何使用 hashmap 对象执行此操作。我会很感激任何建议。谢谢。

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 回答