をチェックします。私はこのようなことをすることができます。春データMongoDBは、フィールドが存在するかどうかを確認して、クエリ
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
が指定された日付以下であるレコードを見つけてください。
Criteria.where("effectiveFrom").lte(date),Criteria.where("validTill").exists(false))
これは、少なくともことを保証でしょう
http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongodb-template-query.criteria見てください。 validTillが存在し、validTillがdateより大きい場合。 –