mongo spring如何基于多个嵌套数组对结果进行排序

时间:2018-08-23 07:06:14

标签: java spring mongodb sorting

我正在使用mongo spring从mongoDB获取数据。我在mongodb中的文档如下所示

connection reset

我试图根据searchKeywordScore的降序对结果进行排序,以使searchKeywordScore的最高值排在第一位,这样我只想获得前10条记录。

所以我尝试如下

{  
   "_id":"993208_1",
   "clientId":"1",
   "searchQueryAnalysisObj":[  
      {  
         "searchKeyword":"coat",
         "searchKeywordScore":0.7,
         "searchAnalysisModifiedDate": ISODate("2018-08-20T11:53:08.228Z")
      },
      {  
         "searchKeyword":"wire",
         "searchKeywordScore":1.2,
         "searchAnalysisModifiedDate": ISODate("2018-09-20T11:53:08.228Z")
      }
   ],
   "_class":"com.client.model.MainClickStreamData"
}

但是它没有用,然后我尝试更改

  

新订单(Direction.DESC,   “ searchQueryAnalysisObj.searchKeywordScore”))));

但是结果仍然不是按顺序排列的,任何人都可以帮助我解决这个问题吗?

谢谢, Navneet

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题-

Query clientData = new Query(Criteria.where("clientId").is(clientId));
            clientData.with(new Sort(Direction.DESC, "searchQueryAnalysisObj.searchKeywordScore"));
            clientData.limit(10);