我有一个简单的模型
@Document(collection = "persons")
public class Person {
@Id
private Integer id;
private String name;
private Integer age;
private List<Phone> phones;
//Getters, setters...
}
我有一个有 2 部手机的用户和一个有一部手机的用户。我想创建一个查询,该查询返回拥有多个电话的每个人。在 mongodb shell 中,我使用以下方法解决了查询:
db.persons.find({$where: 'this.phones.length > 1'})
但是在java代码中我无法重现它。我写了一些我认为它应该有效的东西
Query query = new Query(Criteria.where("phones.length").gt(1));
return mongoTemplate.find(query, Person.class);
但它没有
我正在使用 mongodb 2.4 mongo-java-driver-2.11.1 spring 3.2.2 spring-data-commons-1.5.0.Release
任何帮助将不胜感激!谢谢