【发布时间】:2015-11-11 10:43:28
【问题描述】:
我基本上是在尝试创建自己的排名系统,并希望根据排名最高的用户到排名最低的用户来显示用户。例如,假设我有一个用户集合:
{_id: "CwqaMwgyRNa3G99HD", createdAd: Fri Oct 30, profile: {...}},
{_id: "AcqaMwgyRNa3G99HD", createdAd: Fri Oct 30, profile: {...}},
{_id: "hrqaMwgyRNa3G99HD", createdAd: Fri Oct 30, profile: {...}},
{_id: "DsfaMwgyRNa3G99HD", createdAd: Fri Oct 30, profile: {...}},
{_id: "fdsqaMwgyRNa3G99HD", createdAd: Fri Oct 30, profile: {...}}
我希望能够编写一个函数并对上述用户进行排名,理想情况下通过这些用户并添加一个基于函数的排名属性(在客户端)。例如:
if(Meteor.user.profile.name == "Bob"){
// Add 5 to the rank property
}else if(Meteor.user.profile.job == "Business Man"){
// Add 5 more to the rank property
}
// Now users have rank property added to them based on the function above
{_id: "CwqaMwgyRNa3G99HD",rank: 5, createdAd: Fri Oct 30, profile: {...}},
{_id: "AcqaMwgyRNa3G99HD", rank: 10, createdAd: Fri Oct 30, profile: {...}},
{_id: "hrqaMwgyRNa3G99HD", rank: 5, createdAd: Fri Oct 30, profile: {...}},
{_id: "DsfaMwgyRNa3G99HD", createdAd: Fri Oct 30, profile: {...}},
{_id: "fdsqaMwgyRNa3G99HD", createdAd: Fri Oct 30, profile: {...}}
最后,我想首先在客户端显示排名最高的用户。因此,理想情况下,排名为 10 的 ID 将显示排名为 5 的两个 ID,然后显示其余的 ID。知道如何做到这一点吗?理想情况下,我希望在客户端完成此操作,因为我只需要将其显示在客户端而不是存储在 mongo 中。我会为此使用会话吗?如果是这样,我不太确定如何进行这样的会话。感谢您的帮助!
【问题讨论】:
标签: mongodb sorting session meteor ranking