我正在编写一个iOS应用程序,我正在使用Parse在服务器端存储数据. 我有用户,每个用户都可以有一辆车. 我试图弄清楚如何编写一个查询,允许我让所有用户拥有年份小于2000且具有特定颜色
我有用户,每个用户都可以有一辆车.
我试图弄清楚如何编写一个查询,允许我让所有用户拥有年份小于2000且具有特定颜色的汽车(比方说红色).
每辆车都与用户有关系,每个用户也与他们的汽车有关系.
用户< - >车(一对一)
我开始使用PFQuery:
PFQuery * userQuery = [PFQuery queryWithClassName:@"User"];
我不知道如何处理查询中的关系.所以,我几乎不确定如何完成这项工作.
有什么建议吗?
首先,User类是一种特殊情况,在查询中使用它时需要执行以下操作:PFQuery *query = [PFUser query];
接下来,构造所需查询的方式取决于指针的位置.如果用户的汽车属性是指向汽车的指针,那么查询将如下所示:
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对象:
[carQuery includeKey:@"user"];