我正在使用MongoDB,Mongoose和Node来存储游戏的用户信息 .
我有一种情况,我希望有两套游戏记录:1 . 用户2.领导委员会
用户信息包括用户名,密码,游戏次数和用户的前5个分数 . 我目前有一个为此设置的架构,它完美无缺 .
我现在被要求添加一个LeaderBoard,它应该显示所有用户的前十大总分 . 我想在同一个数据库中为此设置一个单独的记录,以避免检查所有用户记录并过滤以显示排行榜 . 我更倾向于将排行榜集合限制为10条记录,每次用户完成游戏时,检查他们对该集合的分数,看看他们是否应该在排行榜上 . 我是mongo / mongoose的新手,不知道如何最好地接近这个 .
任何意见,将不胜感激 .
我确信这是其他人在过去遇到的问题,如果已经在这里讨论过,我道歉,但我已经搜索过并且无法找到类似的东西 .
1 回答
您不需要其他集合来执行此操作 . 您可以使用MongoDB中的查询完美地完成此操作 .
假设我插入了以下内容:
现在,为了获得这个系列的前10个游戏,您将执行以下操作:
要记住,
aggregate
是来自Mongo 2.2的函数 . 一定要有 . 有关它的更多信息,请查看official documentation .