parsingiOS如何通过在相关PFObject中find的属性查询对象?

我正在写一个iOS应用程序,我正在使用分析来在服务器端存储数据。

我有用户,每个用户可以有一个车。

我试图找出如何编写一个查询,让我得到所有用户有一个年份小于2000年,具有某种颜色(让说红色)的汽车。

每辆车都与用户有关系,每个用户也与他们的车有关系。

用户< – >汽车(一对一)

我开始使用PFQuery:

PFQuery * userQuery = [PFQuery queryWithClassName:@"User"]; 

我不知道如何处理查询中的关系。 所以,我几乎不知道如何做到这一点。

任何build议?

首先, User类是一个特例,在查询中使用它时需要这样做:

 PFQuery *query = [PFUser query]; 

接下来,您构build查询的方式取决于指针的位置。 如果用户有一个car属性是指向Car的指针,那么查询将如下所示:

 PFQuery *userQuery = [PFUser query]; PFQuery *carQuery = [PFQuery queryWithClassName:@"Car"]; [carQuery whereKey:@"year" lessThan:@(2000)]; [carQuery whereKey:@"color" equalTo:@"red"]; [userQuery whereKey:@"car" matchesQuery:carQuery]; [userQuery includeKey:@"car"] [userQuery findObjectsInBackgroundWithBlock:^(NSArray *users, NSError *error) { for (PFObject *user in users) { PFObject *car = user[@"car"]; // read user/car properties as needed } }]; 

如果Car类有一个user属性,那么只需执行一个普通的查询,然后添加以下行来让您访问完整的User对象:

 [carQuery includeKey:@"user"]; 

你的桌子是什么样的? 如果在“车表”中有“用户”作为列,则可以查询小于2000年的车辆的车表,然后只访问该查询的用户属性。 它看起来像这样:

 PFQuery *carQuery = [PFQuery queryWithClassName:@"Car"]; [carQuery whereKey:@"year" lessThan:@(2000)]; [carQuery includeKey:@"user"]; [carQuery findObjectsInBackgroundWithBlock:^(NSArray *cars, NSError *error) { if (!error) { for (Car *car in cars) { User *user = car@["user"]; } } }];