MongoDB在$ map期间对深度嵌套的数组进行排序

时间:2020-07-08 15:28:52

标签: mongodb sorting aggregation-framework mongoid

我有一个看起来像这样的JSON结构:

{
  "_id":1,
  "title":"a new board title",
  "lists":[
    {
      "_id":1,
      "title":"dasads",
      "position":"c",
      "cards":[{ id: 1, list_id: 1, title: "a card" }]
    }
  ]
}

我通过在$ project聚合阶段映射列表来获得此结构:

{
      '$map' => {
        input: "$lists",
        as: "list",
        in: {
          '$mergeObjects' => [
            "$$list",
            {
              cards: {
                '$filter' => {
                  input: "$cards",
                  cond: {
                    '$eq' => ["$$this.list_id", "$$list._id"]
                  }
                }
              }
            }
          ]
        }
      }
    }

但是,我想按字母顺序对列表数组和每个卡数组进行排序。我该怎么办?

还可以在地图阶段已经完成的时候进行排序,而不是为了更好的性能而再次展开吗?

0 个答案:

没有答案