0

I'm new to MongoDB. I don't know much MongoDB queries. One query which I'm unable to find. "Get all students list and count of addressList".

Document:

{ _id: 123, students:
    [
      { 
        studentId:987,
        studentName:"####",
        addressList:[
                 {
                   addressId:678,
                   addressName:"XXXXXXXX"
                 },
                 {
                   addressId:679,
                   addressName:"XXXXXXX"
                 }
               ]
      },
      {
        studentId:988,
        studentName:"####",
        addressList:[
                 {
                   addressId:680,
                   addressName:"XXXXX"
                 }
               ]
      }
    ]  
}

Response:

 {
   students:[
               {
                 studentId:987,
                 studentName:"#####",
                 addressCount:2,
              },
             {
               studentId:988,
               studentName:"#####",
               addressCount:1
             }
         ]
}
karel
  • 5,489
  • 46
  • 45
  • 50
  • Check this question https://stackoverflow.com/questions/54992837/grouping-counting-sub-documents-while-preserving-root-fields – Mani Mar 11 '19 at 04:29

1 Answers1

0

You can use aggregation

db.students.aggregate([
  {
    $unwind: "$students"
  },
  {
    $group: {
      _id: "$_id",
      students: {
        $push: {
          addressCount: {
            $size: "$students.addressList"
          },
          studentId: "$students.studentId",
          studentName: "$students.studentName"
        }
      }
    }
  }
])
Ashok
  • 2,846
  • 1
  • 12
  • 20
  • Thanks for your answer but while running above query I getting the following error- { "message" : "Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in.", "ok" : 0, "code" : 16945, "codeName" : "Location16945", "name" : "MongoError" } – pankaj sharma Mar 11 '19 at 13:56
  • Please share mongo version it should be above 3.6. – Ashok Mar 11 '19 at 14:12
  • MongoDB shell version v3.6.3 – pankaj sharma Mar 12 '19 at 03:03