如何在Follow / Unfollow数据模型中查询

时间:2014-06-29 04:21:02

标签: parse-platform

我看到了Anypic数据模型,我不明白如何查询只查找使用该模型的关注者。

例如

  • 第1天 - 跟随 B
  • 第2天 - 取消关注 B
  • 第3天 - 跟随 B

现在,您将如何构建查询以查找B的关注者?

我能想到的解决方案是

  1. 按照创建日期的desc顺序收集所有“关注/取消关注B的人”的结果,然后对结果运行“for循环”并仅选择最近的活动以确定A当前是否跟随B。这个解决方案使它变慢。我希望我能在查询中做到这一点。
  2. 将此关系存储在名为“follow”的单独关系中,然后另外将此关系存储在连接表(如Anypic模型)中以保留元数据。这需要2个api请求&它增加了冗余,加上它使db在一段时间内不一致,例如在“follow”relation.save()成功之后,我们尝试将它存储在连接表(第二个api请求)中,现在如果由于某种原因连接表保存失败,我们将在“follow”中有关系但是我们将不会有其元数据。
  3. 仅供参考,我在云代码(JS SDK)中这样做,但我只想查看逻辑,所以请根据您的方便建议我查询任何SDK。

2 个答案:

答案 0 :(得分:0)

如果您检查取消关联方法here,则可以看到它删除了以下活动。因此,找到B的追随者是一个简单的查询:

PFQuery *query = [PFQuery queryWithClassName:@"Activity"];
[query whereKey:kPAPActivityToUserKey equalTo:[PFUser currentUser]]; //Current user is B
[query whereKey:kPAPActivityTypeKey equalTo:kPAPActivityTypeFollow];

答案 1 :(得分:-1)

感谢@knshn,该解决方案提出了2个api请求 - 一个用于删除,另一个用于添加新行。目前,我所做的不是删除行,而是更新exisitng行的actionType,说"关注"到"取消关注"我在表格中创建了2个额外的列 - " latestFollowedDate" &安培; " latestUnfollowedDate",我根据操作类型将当前日期存储在其中任何一个中。这样我只需要1个api请求来完成上述操作。