如果我想检查日期是否在日期范围内。我可以做这样的事情。
Query query = new Query();
query.addCriteria(new Criteria().andOperator(Criteria.where("effectiveFrom").lte(date),
Criteria.where("validTill").gte(date)));
return mongoTemplate.find(query, DocumentClass.class, "DocumentName");
但是假设在某些情况下确实存在validTill
,那么最方便的方法是什么?因此,它应该类似于检查 validTill
是否存在,然后比较日期范围内的给定日期,否则只需查找 effectiveFrom
小于或等于给定日期的记录。
最佳答案
添加这应该可以:
Query query = new Query();
query.addCriteria(Criteria.where("validTill").exists(true));
query.addCriteria(new Criteria().andOperator(Criteria.where("effectiveFrom").lte(date),
Criteria.where("validTill").gte(date)));
return mongoTemplate.find(query, DocumentClass.class, "DocumentName");
关于java - Spring Data MongoDB 检查字段是否存在然后查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36861787/