spring data mongodb中的数组排序

spring data mongodb中的数组排序,mongodb,sorting,spring-data,spring-data-mongodb,Mongodb,Sorting,Spring Data,Spring Data Mongodb,我有一个像这样的收藏: {"x":{"y":[ {"date":ISODate("2014-07-24T21:00:00.000Z"),"k":5 }, {"date":ISODate("2014-07-22T21:00:00.000Z"),"k":6 } ] }} 我想根据“date”参数对y数组进行排序,所以我编写了如下代码: query.with(new Sort(Sort.Direction.ASC, "y.date")); 我想这样输出: {"x":{"y":[ {"dat

我有一个像这样的收藏:

{"x":{"y":[
{"date":ISODate("2014-07-24T21:00:00.000Z"),"k":5 },
{"date":ISODate("2014-07-22T21:00:00.000Z"),"k":6 } ] }}
我想根据“date”参数对y数组进行排序,所以我编写了如下代码:

query.with(new Sort(Sort.Direction.ASC, "y.date"));
我想这样输出:

{"x":{"y":[
    {"date":ISODate("2014-07-22T21:00:00.000Z"),"k":5 },
    {"date":ISODate("2014-07-24T21:00:00.000Z"),"k":6 } ] }}

我怎样才能这样输出?是我编写的代码,可以吗?

使用聚合,您的查询应该是这样的,因为您希望根据“日期”按升序对“y”的元素进行排序

聚合([{$unwind:$y”},
{$sort:{“y.date”:1},
{$group:{{u-id:$\u-id,y:{$push:$y}}}})


thanx@vmr。但是“展开”已经拆分了文档,并且每个文档都有一个y。在这种情况下,排序没有任何意义。在按id分组的过程中,将保持顺序,因此它应该达到您的目标。