簡體   English   中英

mongoose:如何使用聚合搜索進行排序

[英]mongoose: how to sort with aggregate search

我有這個聚合搜索 function

filter = { 'games.game_info.game_time': -1 };
.aggregate([
                {
                    $match: {}
                },
                {
                    $project: {
                        games: 1,
                        game_number: {
                            $size: '$games'
                        }
                    }
                },
                {
                    $facet: {
                        paginatedResult: [ { $sort: filter } ]
                    }
                }
            ])

游戲有這個數組。

  games:  [
      {
        game_id: '1',
        game_type: 'GTA5',
        game_info: {
          game_time: '2021-01-17 02:30:00.000Z',
          sports_code: '2'
        },
      },
      {
        game_id: '2',
        game_type: 'GTA5',
        game_info: {
          game_time: '2021-01-17 08:45:00.000Z',
          sports_code: '2'
        },
      }
    ]

我正在嘗試按時間對列表進行sort 但是,我堅持這一點。 嘗試了各種方法。 如何使filter與 +1 或 -1 一起使用,以便按最接近或最晚的時間對列表進行排序?

您可以像這樣對其進行排序。您還可以使用 $count 獲取記錄總數。

Games.aggregate([
        {
            $facet: {
                data: [
                    { $match: { game_type: 'GTA5' } },
                    { $sort: { 'game_info.game_time': -1 } }
                ],
                total_count: [
                     { $count: 'count' }
                ]
            }
        }
    ]);

希望它有所幫助... :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM