2013-06-14 2 views
0

У меня есть простая модельMongoDB Spring-данные списка запросов подсчитывать

@Document(collection = "persons") 
public class Person { 
    @Id 
    private Integer id; 
    private String name; 
    private Integer age; 
    private List<Phone> phones; 
    //Getters, setters... 
} 

У меня есть пользователь с 2 телефонами и пользователь с одного телефоном. Я хочу создать запрос, который возвращает каждого человека, у которого есть более одного телефона. В MongoDB оболочке я решил запрос с использованием:

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 весна-данные -commons-1.5.0.Release

Любая помощь будет оценена! Благодаря

ответ

0

Я нашел решение, правильный запрос

new BasicQuery("{ $where: \"this.phones.length > 1\" }") 
Смежные вопросы