2014-12-12 2 views
1

우정 등급으로 fromUsertoUser 키를 사용하여 사용자 우정을 정렬했습니다. currentUser으로 우정에 있지 않은 사용자 만 반환하려는 경우 두 개의 whereKey:doesNotMatchKey:inQuery:을 사용하여 현재 친구를 분류하고 싶습니다. 나는이 두 줄 중 하나를 주석 경우 예상대로여러 개의 whereKey : doesNotMatchKey : inQuery : 하나의 검색어로

PFQuery *query = [PFUser query]; 
[query whereKey:@"objectId" notEqualTo:[PFUser currentUser].objectId]; 
[query whereKey:@"username" hasPrefix:string]; 

PFQuery *fromFriends = [PFQuery queryWithClassName:parseFriendshipClassName]; 
[fromFriends whereKey:parseFriendshipFromUserKey equalTo:[PFUser currentUser]]; 
-> [query whereKey:@"objectId" doesNotMatchKey:parseFriendshipToUserIdKey inQuery:fromFriends]; 

PFQuery *toFriends = [PFQuery queryWithClassName:parseFriendshipClassName]; 
[toFriends whereKey:parseFriendshipToUserKey equalTo:[PFUser currentUser]]; 
-> [query whereKey:@"objectId" doesNotMatchKey:parseFriendshipFromUserIdKey inQuery:toFriends]; 

는, 다른 하나는 작동하지만, 그들이 거기에 모두있는 경우에만 그 중 마지막 작품.

Friendship 테이블에서 사용자는 포인터 및 해당 objectId으로 참조됩니다. 여기에 그들을 참조하려면 objectId을 사용합니다. 그래서 ID에 대한 포인터를 비교하기 때문에 아닙니다.

문서가 제안하는 것처럼 보이지 않습니다. 하나 이상의 문서를 추가하면 이전 문서보다 우선합니다.

이 예상되는 동작입니까? 아니면 내가 잘못하고있는거야?

답변

-1

이 경우 orQueryWithSubqueries:을 사용해야합니다. 이 문제를 해결해야합니다.

+2

어떻게 도움이 될까요? 내가하려고하는 것은 OR 쿼리가 아니라 AND 쿼리입니다. 두 개의 하위 쿼리에서 두 개의 다른 키를 비교하고 있습니다. – Stjernegard

관련 문제