Как посчитать размер внутреннего списка sub-sub в mongodb? - PullRequest
0 голосов
/ 11 марта 2019

Я новичок в MongoDB. Я не знаю много запросов MongoDB. Один запрос, который я не могу найти. Msgstr "Получить список всех студентов и количество адресов в списке"

Документ:

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

Ответ:

 {
   students:[
               {
                 studentId:987,
                 studentName:"#####",
                 addressCount:2,
              },
             {
               studentId:988,
               studentName:"#####",
               addressCount:1
             }
         ]
}

1 Ответ

0 голосов
/ 11 марта 2019

Вы можете использовать агрегирование

db.students.aggregate([
  {
    $unwind: "$students"
  },
  {
    $group: {
      _id: "$_id",
      students: {
        $push: {
          addressCount: {
            $size: "$students.addressList"
          },
          studentId: "$students.studentId",
          studentName: "$students.studentName"
        }
      }
    }
  }
])
...