【问题标题】:How to use $dateFromString in Spring MongoDB?如何在 Spring MongoDB 中使用 $dateFromString?
【发布时间】:2018-08-04 07:30:02
【问题描述】:

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

我怎样才能通过模式或者是否有其他方法可以实现我的目标?

【问题讨论】:

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


    【解决方案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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多