Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parse platform 如何在Follow/Unfollow数据模型中查询_Parse Platform - Fatal编程技术网

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

Parse platform 如何在Follow/Unfollow数据模型中查询,parse-platform,Parse Platform,我看到了数据模型,我不知道如何通过查询只找到使用该模型的追随者 例如 第1天-A之后是B 第2天-A展开B 第3天-A之后是B 现在,您将如何构建查询以查找B的跟随者 我能想到的解决办法是 按照创建日期的描述顺序收集所有“跟随/取消跟随B的任何人”的结果,然后对结果运行“for循环”,并仅选择最近的活动以确定a当前是否跟随B。这个解决方案使它变慢了。我希望我能在查询中这样做 将此关系存储在名为“follows”的单独关系中,然后将此关系另外存储在连接表(如Anypic模型)中,以保留元数据。

我看到了数据模型,我不知道如何通过查询只找到使用该模型的追随者

例如

  • 第1天-A之后是B
  • 第2天-A展开B
  • 第3天-A之后是B
现在,您将如何构建查询以查找B的跟随者

我能想到的解决办法是

  • 按照创建日期的描述顺序收集所有“跟随/取消跟随B的任何人”的结果,然后对结果运行“for循环”,并仅选择最近的活动以确定a当前是否跟随B。这个解决方案使它变慢了。我希望我能在查询中这样做
  • 将此关系存储在名为“follows”的单独关系中,然后将此关系另外存储在连接表(如Anypic模型)中,以保留元数据。这需要2个api请求&它增加了冗余,并且会使数据库在一段时间内不一致,例如,在“follows”relation.save()成功后,我们尝试将其存储在联接表(第二个api请求)中,现在如果联接表由于某种原因保存失败,我们将在“follows”中保留该关系,但我们将没有其元数据

  • 仅供参考,我正在云代码(JS SDK)中执行此操作,但我只想查看逻辑,因此请根据您的方便建议我查询任何SDK。

    如果您检查unfollowing方法,您可以看到它删除了以下活动。因此,查找B的跟随者是一个简单的查询:

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

    如果选中Unfollow方法,可以看到它删除了以下活动。因此,查找B的跟随者是一个简单的查询:

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

    感谢@KNSN,该解决方案发出2个api请求-一个用于删除,一个用于添加新行。目前,我所做的不是删除行,而是更新现有行的actionType,将“follow”改为“unfollow”,并在表中创建了另外两列-“latestFollowedDate”和“latestFollowedDate”,我根据操作类型将当前日期存储在其中任何一列中。通过这种方式,我只发出1个api请求来执行上述操作。

    谢谢@KNSN,该解决方案发出2个api请求-一个用于删除,一个用于添加新行。目前,我所做的不是删除行,而是更新现有行的actionType,将“follow”改为“unfollow”,并在表中创建了另外两列-“latestFollowedDate”和“latestFollowedDate”,我根据操作类型将当前日期存储在其中任何一列中。通过这种方式,我只发出一个api请求来执行上述操作