在MongoDB中存储最近使用过的项目的设计方法

时间:2019-03-05 21:41:49

标签: mongodb

我在设计多个解决方案时遇到问题,我想看看是否有人可以就哪种方法更好的量化折衷提供见解。

问题:我在MongoDB中有一个项目列表,大约在10到100,000之间(合理)。我希望能够按从最近使用到最近使用的顺序显示我最近使用的前100个项目。

解决方案1:我为每个MongoDB项目添加了时间戳。使用该项目时,我会更新该项目的时间戳。要生成我最近使用的前100个项目,我查询MongoDB,按上次使用的时间戳对项目进行排序,然后显示前100个排序的项目。我的想法是,此解决方案在当前实现中添加的更改最少,但是如果要查询和排序100,000个项目(特别是如果有多个用户正在执行此查询),它可能会很慢。

解决方案2:我创建了一个新的MongoDB集合,该集合仅存储阵列中的前100个项目。每次使用项目时,都会向数组中添加一个元素,如果数组大于100个项目,则会弹出最后一个项目。我的想法是,这种解决方案似乎更快,因为查询仅返回最近集合中的所有内容。

就性能(对于用户)而言,哪种方法更好?还是有另一种甚至更好的方法?

0 个答案:

没有答案