使用PFQuery获取Parse中每个唯一用户的最新记录

时间:2013-05-20 04:44:21

标签: ios parse-platform

我正在使用Parse.com,并且有两个类:UserReportUser可能会在一天内发布多个报告,但我只对最近的报告感兴趣。但是,我需要获得符合特定条件的所有报告,但只能获得最新报告。

最终结果是Report s的数组,其中User在每个{1}}上都是唯一的,如下所示:

ObjectId | ReportedValue | User | CreatedAt
1234     | 100           | aaaa | 2013-05-20T04:23:41.907Z
1235     | 100           | bbbb | 2013-04-29T05:10:41.907Z
1236     | 100           | cccc | 2013-05-20T02:14:41.907Z
1237     | 100           | dddd | 2013-05-19T04:03:41.907Z

因此,User aaaa可能有20个报告,但我只需要每个用户最新的报告。但是,我正在根据ReportedValue 100进行搜索,所需的结果是报表对象,而不是用户,因此我不想浏览每个用户。

这在Parse中是否可行?

2 个答案:

答案 0 :(得分:1)

考虑使用数据模型中的另一个对象来帮助解决这个问题。它基本上是一个与Report有关系的容器。保存任何新报告时,会运行一些cloud code

  1. 查找关联用户的上一个最新Report
  2. 从容器关系中删除该报告
  3. 将新报告添加到容器关系
  4. 通过这种方式,您的应用可以对关系进行单一,简单的查询,以获取所有最新的Report

答案 1 :(得分:1)

来自Rest API ....提供用户的OID的工作在您要查询的类中的记录的ACL段中。

除了查询的其他谓词之外,parse还可以限制返回的行数..

  --data-urlencode 'limit=1' \
  --data-urlencode 'skip=0' \

对于用户,如果从用户表中获取要查询的用户的行 和该用户的'token'字段值,然后使用您的报表查询,将一个额外的标题设置为sessionToken值,您将只获得用户的报表对象。

-H "X-Parse-Session-Token: pn..." \

您将获得该用户的报告

AND

results.size = 1