2017-05-11 2 views
0

ich ein Szenario wie Bedürfnis haben, das Ergebnis der Gruppe zu sortieren() in mongoDBkönnen wir das Ergebnis von group() in mongoDB sortieren?

Beispiel:

Sie Dokumente in Studenten Sammlung wie unten

{ 
    "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" 
         } 
      }, 
       ] 
     } 

die ich Gruppierung Angenommen haben Details, indem ich die Abteilungs-ID in der Schülersammlung verwende, In group() selbst muss ich sortieren, indem ich den Nachnamen in den Parteien verwende. Wie können wir das in einer Abfrage selbst erreichen?

bitte helfen Sie mir heraus. Ich schätze deine Bemühungen sehr.

+0

erste '$ unwind' Parteien, dann' $ sort' auf Nachnamen und schließlich '$ first' – felix

+0

Gruppe mit i bin neu Sie MongoDB..can bitte Gib mir die Beispielabfrage zu meinem Szenario. das wird mir wirklich sehr helfen – RAMESHNAIDU

+0

werfen Sie einen Blick auf [Aggregation] (https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/) – felix

Antwort

0

Dies wird für Sie arbeitet:

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