[英]Mongo Aggregation Query in spring-data-mongo Java using mongoTemplate
I am trying to convert milliseconds to dd-mm-yyyy format using spring-data-mongo APIs.我正在尝试使用 spring-data-mongo API 将毫秒转换为 dd-mm-yyyy 格式。 Below is the required Mongo working query and corresponding Java spring code.下面是所需的 Mongo 工作查询和相应的 Java spring 代码。
"$project" : {
"serverTimestamp": 1,
"formattedServerDate": {
"$dateToString": {
"format": "%d-%m-%Y",
"date": {
"$toDate" : "$serverTimestamp"
}
}
}
}
ProjectionOperation dateProject = Aggregation.project("serverTimestamp")
.and(ConvertOperators.ToDate.toDate("$serverTimestamp"))
.dateAsFormattedString("%d-%m-%Y").as("formattedServerDate");
But I am getting below error但我得到以下错误
Caused by: java.lang.IllegalStateException: Projection field name must not be null!
at org.springframework.util.Assert.state(Assert.java:73)
at org.springframework.data.mongodb.core.aggregation.ProjectionOperation$ProjectionOperationBuilder.getRequiredName(ProjectionOperation.java:1250)
at org.springframework.data.mongodb.core.aggregation.ProjectionOperation$ProjectionOperationBuilder.dateAsFormattedString(ProjectionOperation.java:1204)
at com.abcd.deda.service.EventServiceImpl.getSessionStats(EventServiceImpl.java:423)
Help!帮助!
Try尝试
ProjectionOperation toDateProjectOperation = Aggregation.project("serverTimestamp")
.andExpression("toDate(toLong(serverTimestamp))")
.as("formattedServerDate");
ProjectionOperation dateToStringProjectOperation = Aggregation.project("serverTimestamp")
.and("formattedServerDate")
.dateAsFormattedString("%d-%m-%Y")
.as("formattedServerDate");
newAggregation(
...
toDateProjectOperation,
dateToStringProjectOperation
...
)
In ProjectOperation class, dateAsFormattedString(String)
calls this.operation.and(DateOperators.DateToString.dateOf(getRequiredName()).toString(format))
, but name is not defined.在 ProjectOperation 类中, dateAsFormattedString(String)
调用this.operation.and(DateOperators.DateToString.dateOf(getRequiredName()).toString(format))
,但未定义名称。
The question was asked six months ago, you've probably solved it.这个问题是六个月前问的,你可能已经解决了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.