0

私は簡単なモデルを持っています

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

2 台の電話を持つユーザーと 1 台の電話を持つユーザーがいます。複数の電話を持っているすべての人を返すクエリを作成したいと考えています。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 mongo-java-driver-2.11.1 spring 3.2.2 spring-data-commons-1.5.0.Releaseを使用しています

どんな助けも高く評価されます!ありがとう

4

1 に答える 1