以下是我的json结构的一部分:
{
"dateOfCalculation" : ISODate("2018-08-13T06:02:48.587Z"),
"value" : 6.0
},
{
"dateOfCalculation" : ISODate("2018-08-13T06:04:38.294Z"),
"value" : 8.0
},
{
"dateOfCalculation" : ISODate("2018-08-30T07:21:08.444Z"),
"value" : 5.0
},
{
"dateOfCalculation" : ISODate("2018-10-01T10:04:33.564Z"),
"value" : 5.58333349227905
},
{
"dateOfCalculation" : ISODate("2018-10-24T11:41:24.188Z"),
"value" : 5.16666650772095
},
{
"dateOfCalculation" : ISODate("2018-10-26T14:03:54.672Z"),
"value" : 5.58333349227905
},
{
"dateOfCalculation" : ISODate("2019-01-10T15:05:44.842Z"),
"value" : 3.5
},
{
"dateOfCalculation" : ISODate("2019-01-21T10:08:52.429Z"),
"value" : 6.0
},
{
"dateOfCalculation" : ISODate("2019-01-21T10:38:57.468Z"),
"value" : 5.16666650772095
},
{
"dateOfCalculation" : ISODate("2019-01-25T14:01:56.779Z"),
"value" : 6.0
}
使用spring数据mongodb,我想根据月份对这些数据进行分组,并获取最新日期记录的值。大致如下:第8个月-
{
"dateOfCalculation" : ISODate("2018-08-30T07:21:08.444Z"),
"value" : 5.0
},
第一个月-
{
"dateOfCalculation" : ISODate("2019-01-25T14:01:56.779Z"),
"value" : 6.0
}
我应该在springdatamongodb中使用什么样的聚合操作,这样我就可以首先根据月份对它们进行分组,然后获取当月的最新数据?
1条答案
按热度按时间5sxhfpxr1#
mongodb查询如下所示:
此聚合将返回具有以下架构的文档:
下面是一个使用spring数据mongodb的例子。
蒙德银行
$addFileds
操作符没有在springmongodb中实现,所以您必须使用ProjectionOperation
. 关于$month
运算符您可以使用spel andexpression()或dateoperators.month。