我有一个使用聚合框架和$ sort子句的复杂查询,根据某些条件,从最佳到最差的顺序生成用户列表。例如
const result = [u1, u2, u3];
所以这可以被视为:
User Rank
u1 1
u2 2
u3 3
我有一个字段用户,位置的集合。我想创建一个查询,以便我可以将查询作为查询投影阶段的一部分添加到集合中:
User Location UserRank
u1 China 1
u1 Brazil 1
u2 China 2
u3 Australia 3
然后用min分组,得到:
Location BestUserRank
China 1
Brazil 1
Australia 3
在聚合函数中使用min()很容易,但我不知道如何将这些等级加入到查询中。
我觉得我应该能够做到:
$project: {
user: 1,
location: 1,
rank: { $rank: { field: '$user', dictionary: rankDictionary }
}
但据我所知,mongodb不允许你这样做。