需求:根据活动参与人数(members.size)对所有活动做排序(源数据存储在mongoDB) (Java实现)
数据结构如下:
{
"_id": ObjectId("64abc59d64b672069c437bce"),
"topic":"歌唱比赛"
"members": {
"001": [
"name":"张三"
"age":"20"
],
"002": [
"name":"李四"
"age":"25"
],
"003": [
"name":"王五"
"age":"23"
],
},
"status": "ended"
}
{
"_id": ObjectId("64abc59d64b672069c437bce"),
"topic":"生日会"
"members": {
"006": [
"name":"刀哥"
"age":"20"
],
"102": [
"name":"小虎"
"age":"25"
]
},
"status": "ended"
}
因为数据量比较大 所以不能查询出结果再排序处理。
Aggregation聚合查询中size函数只能对数组进行统计,不能处理这种数据结构