0

使用 Spring-Data-Mongo 如何限制搜索?

我想找到所有 19 岁以上但 50 岁以下的人?该字段称为“年龄”。以下代码不起作用

public void countUnderAge()
{
    List<Person> results = null;

    Query query = new Query();
    Criteria criteria = new Criteria();
    criteria = criteria.lte("21");

    query.addCriteria(criteria);
    results = mongoTemplate.find(query, Person.class);

    logger.info("Total number of under age in database: {}", results.size());
}
4

1 回答 1

0

用这个:

Query query= new Query();
query.addCriteria(where("age").lte(21)); 
List<Person> results = mongoTemplate.find(query, Person.class);

您缺少 where 子句的字段名称。你也可以这样做:

Query query = new Query();
Criteria criteria = new Criteria();
criteria = where("age").lte("21");
query.addCriteria(criteria);

要使用“where”,您需要添加此导入:

import static org.springframework.data.mongodb.core.query.Criteria.where;
于 2013-06-26T18:21:48.717 回答