匹配具有包含特定字符串和Morphia的列表的对象

时间:2012-11-05 10:42:08

标签: java mongodb morphia

想象一下,我有一个名为SomeClass的类,它有一个名为aStringList的字符串列表。

public Class SomeClass{

  List<String> aStringList;

  ...

}

我想找到SomeClass的所有对象,使aStringList包含字符串"sillyString"

我试过了:

Datastore ds = Dao.instance().getDatabase();
List<String> myResults = ds.find(SomeClass.class).
field("aStringList").hasThisElement("sillyString").asList();

然而,这给了我错误:

com.mongodb.MongoException: invalid parameter: expected an object ($elemMatch)

1 个答案:

答案 0 :(得分:3)

使用field(...).equal(...)(假设您正在寻找完全匹配)。 MongoDB将匹配单个值以及数组内的任何值。

如果您有自定义文档实体列表(.hasThisElement(...))并且想要检查是否正在引用特定文档实体,请使用@Reference List<MyEntity>