MongoDB Spring-data查询列表计数

时间:2013-06-14 11:51:57

标签: java spring mongodb spring-data

我有一个简单的模型

@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

任何帮助都会被贬低! 感谢

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,正确的查询是

new BasicQuery("{ $where: \"this.phones.length > 1\" }")