想象一下,我有一个名为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)

最佳答案

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

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

09-26 16:51