在MongoDB中,使用Criteria查询是一种常见的操作,以下是一些常用的Criteria查询语法和示例代码:
- 等于(Equal):
Criteria criteria = Criteria.where("fieldName").is(value);
- 不等于(Not Equal):
Criteria criteria = Criteria.where("fieldName").ne(value);
- 大于(Greater Than):
Criteria criteria = Criteria.where("fieldName").gt(value);
- 大于等于(Greater Than or Equal):
Criteria criteria = Criteria.where("fieldName").gte(value);
- 小于(Less Than):
Criteria criteria = Criteria.where("fieldName").lt(value);
- 小于等于(Less Than or Equal):
Criteria criteria = Criteria.where("fieldName").lte(value);
- 模糊匹配(Like):
Criteria criteria = Criteria.where("fieldName").regex(Pattern.quote(value));
- 在某范围内(Between):
Criteria criteria = Criteria.where("fieldName").gte(value1).lte(value2);
- 在列表中(In List):
Criteria criteria = Criteria.where("fieldName").in(valueList);
- 不在列表中(Not In List):
Criteria criteria = Criteria.where("fieldName").nin(valueList);
- 按字段排序(Ascending Order):
Query query = new Query();
query.with(Sort.by(Sort.Order.asc("fieldName")));
- 按字段排序(Descending Order):
Query query = new Query();
query.with(Sort.by(Sort.Order.desc("fieldName")));
- 限制返回结果数(Limit):
Query query = new Query();
query.limit(maxResults);
- 跳过特定数量的结果(Skip):
Query query = new Query();
query.skip(numberToSkip);
- 组合Criteria:
Criteria criteria = new Criteria();
criteria.andOperator(
Criteria.where("field1").is(value1),
Criteria.where("field2").gt(value2)
);
- 计数(Count):
long count = mongoTemplate.count(new Query(criteria), collectionName);
- 查询(Find):
List<Document> results = mongoTemplate.find(query(criteria), Document.class, collectionName);
这些是使用MongoDB的Criteria查询时常用的操作和语法。在实际应用中,可以根据需要选择合适的查询方法并结合这些基本语法来构建复杂的查询逻辑。