首页 > 解决方案 > 查询以从 mongodb 对象的嵌套数组中获取 id

问题描述

这是数据:

[
  {
    id: 1,
    questions: [{
        questionID: 11,
        createdDate: 2020 - 06 - 22 T14: 07: 22.193 + 00: 00
      },
      {
        questionID: 12,
        createdDate: 2020 - 06 - 20 T13: 05: 55.193 + 00: 00
      },
      {
        questionID: 13,
        createdDate: 2020 - 06 - 21 T10: 05: 23.193 + 00: 00
      }
    ]
  },
  {
    id: 2,
    questions: [{
      questionID: 11,
      createdDate: 2020 - 06 - 22 T14: 07: 22.193 + 00: 00
    }]
  }
]

如何使用聚合从 mongodb 获取同一查询中的问题 ID 和问题总数。

预期资源:

[{
  'id': 1,
  totalNumberOfQuestions: 3,
  ids: [11, 12, 13]
}]

标签: mongodbmongodb-queryaggregation-frameworkaggregation

解决方案


试试这个:

db.collection.aggregate([
   {
      $project: {
         id: 1,
         totalNumberOfQuestions: { $size: "$questions" },
         ids: "$questions.questionID"
      }
   }
])  

推荐阅读