我正在尝试开发一个复制类似tinder的滑动式Feed的应用程序。该应用程序的想法与tinder非常相似,并且向右滑动并向左滑动以匹配功能。
到目前为止我做了什么 - 我在MongoDB中创建了一个滑动集合,用户在以下模式中存储滑动 -
swipedBy : {type:Schema.ObjectId},
swipedUser : {type:Schema.ObjectId},
status: {type:String, default:"left"}
当用户向右滑动时,我正在调用DB。对于每次滑动插入,我尝试查找用户是否已被其他用户向右滑动,然后再说出匹配或将其存储在数据库中。必须有更好的方法。
可能的解决方案
我希望使用像Redis这样的内存数据库来存储类似的信息,并根据滑动查找用户之间的匹配。如果有人能够了解火种是如何做到的,那么它也会有所帮助。 我在Redis中的架构看起来像这样 -
HSET for each user with
- userId as field, and
- status as swipe status
但是这种方法的问题在于我无法跟踪用户是否已经刷过了饲料中需要的特定人。可以为此问题做的一件事是我可以更新集合并维护已刷过的用户列表。
如果还有其他数据库/方式可以帮助我完成此过程,请同时提出建议。
修改:
我没有打任何瓶颈。我只是想确认一下我做得对不对。通过列表迭代以找出用户是否被另一个人正确滑动是线性时间解决方案。我想知道我是否能做得更好,无论是通过数据库还是其他我应该尝试的东西。
答案 0 :(得分:1)
我不知道这是否真的能解决您的疑问,但您可以尝试一下