【发布时间】:2020-09-15 07:17:41
【问题描述】:
所以我想按数组计数降序对集合进行排序。在我当前的代码中,我有“UpVote:-1”,它通常可以工作,但是对于一个数组,它似乎是按数组内的字符的最高数或最长长度对集合进行排序,我想要的是它按数组本身计数。
CRUD 服务类
public async Task<IEnumerable<T>> GetPopular<T>(string collectionName)
{
var collection = db.GetCollection<T>(collectionName);
return await collection.Find(new BsonDocument()).Sort("{UpVote: -1}").ToListAsync();
}
这不会像我想象的那样按数组计数对集合进行排序,而是按 UpVote 数组中的最高 int 或最长字符串对集合进行排序。
有问题的集合
到目前为止,集合将按降序排序,第二条记录在顶部,因为它在所有记录中的数量最多。然而,如上所述,我正在尝试做的是按数组计数排序,因此它应该是顶部的第三条记录,然后是第一条记录,最后是第二条记录。
【问题讨论】: