我有这个聚合搜索功能
filter = { 'games.game_info.game_time': -1 };
.aggregate([
{
$match: {}
},
{
$project: {
games: 1,
game_number: {
$size: '$games'
}
}
},
{
$facet: {
paginatedResult: [ { $sort: filter } ]
}
}
])
games 有这个数组。
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 一起使用,以便按最近或最晚的时间对列表进行排序?
答案 0 :(得分:1)
您可以这样排序。您也可以使用 $count 获取记录总数。
Games.aggregate([
{
$facet: {
data: [
{ $match: { game_type: 'GTA5' } },
{ $sort: { 'game_info.game_time': -1 } }
],
total_count: [
{ $count: 'count' }
]
}
}
]);
希望它有帮助... :)