我有一个简单的模型
@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 蒙戈-java的驱动程序2.11.1 春天3.2.2 弹簧数据公地1.5.0.Release
任何帮助都会被贬低! 感谢
答案 0 :(得分:0)
我找到了解决方案,正确的查询是
new BasicQuery("{ $where: \"this.phones.length > 1\" }")