有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Match对象,该对象具有包含具有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) 个答案

  1. # 1 楼答案

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

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