如何转换和比较spring mongodb数据中的日期

如何转换和比较spring mongodb数据中的日期,mongodb,spring-boot,Mongodb,Spring Boot,我试图在某个日期后从mongodb集合中检索记录,但日期字段在mongodb集合中存储为字符串。我想下面的查询不太好,因为它进行了字符串比较。如何从mongo转换字符串日期,然后与输入日期进行比较 `mongoOperations.find(query(where("lastUpdated").gte(inputTimeStamp).and("status").in("COMPLETED")), Cart.class);` 像这样的事

我试图在某个日期后从mongodb集合中检索记录,但日期字段在mongodb集合中存储为字符串。我想下面的查询不太好,因为它进行了字符串比较。如何从mongo转换字符串日期,然后与输入日期进行比较

`mongoOperations.find(query(where("lastUpdated").gte(inputTimeStamp).and("status").in("COMPLETED")), Cart.class);`

像这样的事情对我很有用。这可能不是最好的方法,因为它具有sql注入的潜力,但我确保在数据到达这里之前对其进行清理

 String queryStr = "{\"$expr\": {\"$gte\": [{ \"$dateFromString\": { \"dateString\": \"$lastUpdated\",timezone:\"America/New_York\" }}, new Date(\"%s\") ]},status:{$in:[\"COMPLETED\"]}}";
   BasicQuery query = new BasicQuery(String.format(queryStr,timeStamp));
   return  mongoTemplate.find(query, Cart.class);

要进行比较,数据库字段类型和输入日期类型必须相同。在这种情况下,可以作为
Date
对象或字符串。lastUpdated和inputTimeStamp都是字符串,但这似乎不正确。请发布一个示例文档,显示数据字段和示例输入日期-您正在尝试进行比较。