2017-05-11 31 views
0

我有这样一个需求场景,MongoDB中我们可以在mongoDB中对group()的结果进行排序吗?

对于示例组()的结果进行排序:

假设你有一个像下面

{ 
    "id":"kjdkfdjkljflkd73847", 
    "DepartementID":123, 
    "parties":[ 
      { 
       "idNumber" : "103", 
       "studentName" : { 
       "suffix" : "Mr", 
       "firstName" : "ram", 
       "middleName" : "", 
       "lastName" : "gorli" 
         } 
      }, 
      { 
       "idNumber" : "99", 
       "studentName" : { 
       "suffix" : "Mr", 
       "firstName" : "ramesh", 
       "middleName" : "", 
       "lastName" : "vogue" 
         } 
      }, 
       ] 
      }, 
    { 
    "id":"kjdkfdjkljflkd73847", 
    "DepartementID":123, 
    "parties":[ 
      { 
       "idNumber" : "101", 
       "studentName" : { 
       "suffix" : "Mr", 
       "firstName" : "Mike", 
       "middleName" : "", 
       "lastName" : "john" 
         } 
      }, 
      { 
       "idNumber" : "102", 
       "studentName" : { 
       "suffix" : "Mr", 
       "firstName" : "ram", 
       "middleName" : " ", 
       "lastName" : "gorli" 
         } 
      }, 
       ] 
     } 

我的分组学生中收集的文件在学生收藏中使用DepartmentID的详细信息,在group()本身中,我需要在派对中使用姓氏进行排序。我们如何在一个查询中实现这一点呢?

请帮我一把。我非常感谢你的努力。

+0

第一'$ unwind'方,然后'对lastName的最后组使用$ sort''$ first' – felix

+0

我是新来MongoDB..can请你给我示例查询我的方案。这将真的帮助我很多 – RAMESHNAIDU

+0

看看[聚合](https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/) – felix

回答

0

这会为你工作:

db.getCollection('quotes').aggregate([ 
    { 
     $unwind:"$parties" 
    }, 
    { 
     $sort:{ 
     "parties.studentName.lastName": 1 
     } 
    }, 
    { 
     $group:{ 
     _id:"$DepartementID", 
     parties:{ 
      $push:"$parties" 
     } 
     } 
    } 
]) 
相关问题