首页 > 解决方案 > 如何在 Spring MongoDB 中使用 $dateFromString?

问题描述

在我的文档中,日期字段是一个字符串"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'

我怎样才能通过模式或者是否有另一种方法来实现我的目标?

标签: mongodbmongodb-queryspring-dataaggregation-frameworkspring-data-mongodb

解决方案


format选项已添加到$dateFromStringMongoDB 版本 4 中,目前在 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");

推荐阅读