【问题标题】:Sort nested array using push in MongoDB?在 MongoDB 中使用推送对嵌套数组进行排序?
【发布时间】:2020-04-14 15:28:24
【问题描述】:

考虑查询

  EightWeekGamePlan.aggregate(
      [
        {
          $group: {
            _id: {
              LeadId: "$LeadId",
              BusinessName: "$BusinessName",
              PhoneNumberMasque: "$PhoneNumberMasque",
              City: "$City",
              Rooms: "$Rooms",
              dateToString: { format: "%Y-%m-%d", date: "$InserDate" }
            },
            Weeks: {
              $push: {
                Week: "$Week",
                Status: "$Status",
                InsertDate: "$InsertDate"
              },
              // $sort: { Week: 1 }  // doesn't work
            }
          }
        }
      ]

如何按Week 对嵌套数组Weeks 进行排序(这是一个1-8 范围内的数字)?

我已尝试使用 $sort: { Week: 1 },但查询未成功。

【问题讨论】:

    标签: javascript node.js mongodb mongoose aggregation-framework


    【解决方案1】:

    $group 阶段之前使用$sort

    EightWeekGamePlan.aggregate([
      { $sort: { Week: 1 }},
      { $group: {
        _id: {
          LeadId: "$LeadId",
          BusinessName: "$BusinessName",
          PhoneNumberMasque: "$PhoneNumberMasque",
          City: "$City",
          Rooms: "$Rooms",
          dateToString: { format: "%Y-%m-%d", date: "$InserDate" }
        },
        Weeks: {
          $push: {
            Week: "$Week",
            Status: "$Status",
            InsertDate: "$InsertDate"
          }
        }
      }}
    ])
    

    【讨论】:

      猜你喜欢
      • 2020-02-06
      • 2016-09-29
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多