首页 > 解决方案 > 在mongodb中对嵌套数组进行排序

问题描述

我在 mongodb 集合中有以下结构,如附图所示: 在此处输入图像描述

我将有一个索引号,在其中,我将有记录,现在记录将是一个或多个数组,如上所示。我想对数学科目中每个分数的记录中的数据进行排序。做这个的最好方式是什么?谢谢

标签: pythonmongodbsortingnestedpymongo

解决方案


您可以使用unwind聚合

    db.collection.aggregate([
       {
          $unwind:{
             path: "$Records",
             includeArrayIndex:"firstUnwind"
         }
       },
       {
          $unwind:{
             path: "$Records",
         }
       },
      { $sort : { Match: -1} },
      {
          $group: {
             _id: {
                id: "$_id",
                firstUnwind: "firstUnwind"
             },
             Index_Number: {$first: "$Index_Number"},
             Records: {$push: "$Records"}
          }
      },
      {
          $group: {
            _id: "$_id.id",
             Index_Number: {$first: "$Index_Number"},
             Records: {$push: "$Records"}
          }
      }
    ])`

推荐阅读