我正在设计一个数据库。根据文档,当关系数大于100并且有额外的字段时,我必须设计一个Join Table
。我通过具有两个指针值来设计了Join Table
。
_User
。以后我只需要currUser
的行。 objectId
。我的问题是,如何编写查询以返回queryfortable
中此表的对象。 比方说:
Table _User
Table Entity
Table Join ---> objectId Pointer1(_User) Pointer2(Event)
看起来像这样:
到目前为止,这是我尝试过的:
首先,我尝试在
viewDidLoad
中从云中获取被邀请用户的数组,然后在queryForTable
中进行尝试: PFQuery *query = [PFQuery queryWithClassName:@"Event"];
[query whereKey:@"objectId" containedIn:_inviteList];
但是我需要访问_inviteList.objectId,这是不可能的!
我试图使用innerQuerry或关系查询。但是当我刚开始学习解析时,我无法实现这一点。
PFUser *friendPointer = [PFUser currentUser];
PFQuery *query2 = [PFQuery queryWithClassName:@"Event"];
[query2 whereKey:friendPointer containedIn:_inviteList];
return query2;
这对我也不起作用。
PFQuery *innerQuery = [PFQuery queryWithClassName:@"Invite"];
[innerQuery whereKey:@"invitedUser" equalTo:[PFUser currentUser]];
query = [PFQuery queryWithClassName:@"Event"];
[query whereKey:@"user" matchesQuery:innerQuery];
return query;
如果有人可以帮助我编写此查询或重新设计表以访问此查询,我将不胜感激。
最佳答案
请尝试此代码并给我评论
PFUser *user = [PFUser currentUser];
PFQuery *query = [PFQuery queryWithClassName:@"Invite"];
[query whereKey:@"invitedUser" equalTo:user];
[query includeKey:@"invitedUser"];
[query includeKey:@"eventId"];
[query orderByDescending:@"updatedAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
if (error == nil)
{
for (PFObject *underobject in [objects reverseObjectEnumerator])
{
PFUser *user1 = underobject[@"invitedUser"];
NSLog(@"invitedUser is :%@",user1);
}
}
}];
关于ios - 如何使用iOS在parse.com上访问指针值的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32663631/