如何在Spring MongoDB中使用$ dateFromString?

时间:2018-08-04 07:30:03

标签: mongodb mongodb-query spring-data aggregation-framework spring-data-mongodb

在我的文档中,日期字段是字符串"date": "01/08/2018"。如何在Spring MongoDB中将其转换为Date对象,以便能够将比较器运算符(如“ gte,lte”)用于其他日期对象。

我尝试过:

project()

   .and(DateOperators.DateFromString.fromStringOf("date")).as("date")

它仅适用于格式为yyyy-MM-dd的字段,当然我最终得到了:

'Error parsing date string '26/10/2016'; 0: Unexpected character '2'

我如何通过模式?或者还有另一种方法可以实现我的目标?

1 个答案:

答案 0 :(得分:1)

format选项已在MongoDB版本4中添加到$dateFromString中,并且在Spring Data MongoDB中目前丢失。我已经打开DATAMONGO-2047来解决此问题。
同时,您可以尝试以下操作以手动添加。

project().and(context -> {

    Document doc = DateFromString.fromStringOf("date").toDocument(context);
    doc.get("$dateFromString", Document.class).put("format", "dd/mm/yyyy");
    return doc;
}).as("date");