我的数据模型中有一个Test对象,其中包含两个与开始和结束日期相对应的字符串。开始日期字符串的值例如是“ 2019-10-23T08:12:33.955191013Z” 是否可以使用索引或其他方式创建查询以选择包含日期在开始日期和结束日期之间的Test对象。如果这不适用于字符串,并且日期需要较长,那么我可以使用自历元以来的毫秒数,而不是字符串作为日期。可以通过获取列表中的所有Test对象并创建带有过滤器的流来获取包含日期在开始日期和结束日期之间的Test对象的方式来完成此操作,但我希望这样做可以提高效率或更快的方法。任何帮助,见解或文档将不胜感激。
答案 0 :(得分:0)
我认为您最好的方法是使用前缀索引,但是您仍然需要过滤“边缘”。
https://hollow.how/indexing-querying/#prefix-index
因此,如果将日期保留为ISO-8601格式,并且要在date1和date2之间进行搜索,则可以使用它们共有的前缀来过滤集合。至少这将为您提供完整集合的子集进行过滤。
我还建议将日期和字符串一样长,并在比较中使用长号。这将使>和<比较更加有效,因为不需要创建String对象。