我有学生(字符串)和指导员(字符串列表),.I想要根据讲师计数按降序获取记录。教员如下: a,b,c-3,e,f-2,g,h,i,j-4.
我要按4,3,然后2的顺序。
它基于字段指导员数组的size.How来使用mongoTemplate或自定义mongodb查询或聚合来查询?
发布于 2022-01-09 10:00:51
我找到了一种从mongodb中按数组大小进行排序的方法。以上各点的汇总如下:
newAggregation(addFields().addField("nInstructors") .withValue(新文档("$size,"nInstructors")).build(),排序(DESC,"nInstructors"),限制(LimitCount );
发布于 2022-01-07 13:19:37
Query1
$size
添加一个新字段*sort不接受表达式,如果不添加一个新字段,我们就不能在1阶段完成它。
aggregate(
[{"$set":{"nInstructors":{"$size":"$instructor"}}},
{"$sort":{"nInstructors":-1}},
{"$unset":["nInstructors"]}])
Query2
aggregate(
[{"$set":
{"nInstructors":
{"$cond":
[{"$isArray":["$instructor"]}, {"$size":"$instructor"}, 0]}}},
{"$sort":{"nInstructors":-1}},
{"$unset":["nInstructors"]}])
https://stackoverflow.com/questions/70621615
复制相似问题