gpt4 book ai didi

mongodb - 滑动/匹配的后端如何在基于滑动的应用程序中工作?

转载 作者:IT王子 更新时间:2023-10-29 06:06:11 28 4
gpt4 key购买 nike

我正在尝试开发一个应用程序来复制类似 tinder 的基于滑动的提要。该应用程序的想法与火种非常相似,也具有向右滑动和向左滑动匹配功能。

到目前为止我做了什么-我在 MongoDB 中创建了一个刷卡集合,它将用户的刷卡存储在以下模式中 -

swipedBy : {type:Schema.ObjectId},
swipedUser : {type:Schema.ObjectId},
status: {type:String, default:"left"}

当用户向右滑动时,我正在调用 DB。对于每次滑动插入,我都会尝试在说出匹配项或将其存储在数据库中之前,找出一个用户是否已被另一个用户向右滑动。必须有更好的方法。

可能的解决方案

我一直在寻找使用像 Redis 这样的内存数据库来存储相似的信息,并根据滑动找到用户之间的匹配项。如果任何人都可以阐明 tinder 是如何做到的,那么它也会有所帮助。我在 Redis 中的架构如下所示 -

HSET for each user with 
- userId as field, and
- status as swipe status

但这种方法的问题是我将无法跟踪用户是否已经刷过提要期间需要的特定人员。可以针对此问题做的一件事是我可以更新集合并维护已刷过的用户列表。

如果有任何其他数据库/方式可以在此过程中帮助我,也请提出建议。

编辑:

我没有遇到任何瓶颈。我只是想确认我是否做对了。遍历列表以找出用户是否被其他人向右滑动是线性时间解决方案。我想知道我是否可以通过 DB 或我应该尝试的其他方法做得更好。

最佳答案

我不知道这是否真的解决了您的问题,但您可以试一试

  • 有一个单独的布隆过滤器来检查它是否匹配......可能会有误报,但由于大多数将“尚未匹配”,这将节省大量数据库查询
  • 如果还不匹配,你需要存储向上滑动的数据条目,将多个这样的条目在内存/redis中保留一段时间,然后批量插入到数据库中
  • 实时更新 bloom 过滤器(注意:在批量插入完成之前,bloom 和数据库之间可能会暂时不匹配。)

关于mongodb - 滑动/匹配的后端如何在基于滑动的应用程序中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48502658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com