我有一个包含用户的聊天室类。我可以成功查询该类并仅返回特定的PFUsers。
// get all room IDs associated with current user
var outerRoomQuery = PFQuery(className:Parse.CHATROOM_CLASS_NAME)
outerRoomQuery.whereKey(Parse.CHATROOM_USER, equalTo: PFUser.currentUser()!)
outerRoomQuery.selectKeys([Parse.CHATROOM_ROOMID])
// get all users associated with above roomIds ignoring current User
var innerRoomQuery = PFQuery(className:Parse.CHATROOM_CLASS_NAME)
innerRoomQuery.whereKey(Parse.CHATROOM_ROOMID, matchesKey:Parse.CHATROOM_ROOMID, inQuery: outerRoomQuery)
innerRoomQuery.whereKey(Parse.CHATROOM_USER, notEqualTo: PFUser.currentUser()!)
innerRoomQuery.includeKey(Parse.CHATROOM_USER)
innerRoomQuery.orderByDescending(Parse.CHATROOM_UPDATEDACTION)
innerRoomQuery.selectKeys([Parse.CHATROOM_USER])
上述查询返回约5个用户。 我想知道是否可以将这些结果与单独的PFUser.query()组合以创建类似这样的OR查询:
var userQuery = PFUser.query()
userQuery?.whereKey(Parse.CHATROOM_USER, matchesKey:Parse.CHATROOM_USER, inQuery: innerRoomQuery) // returns nil
var receptionQuery = PFUser.query()
receptionQuery?.whereKey(Parse.USER_ROLE, equalTo:Parse.PFROLE_RECEPTIONIST) // returns around 10 receptionist users
var orUserQuery = PFUser.query()
return PFQuery.orQueryWithSubqueries([userQuery!, receptionQuery!])
上述结果仅返回接待员。所以我的问题是如何实现这一目标:
userQuery?.whereKey(Parse.CHATROOM_USER, matchesKey:Parse.CHATROOM_USER, inQuery: innerRoomQuery)
我知道这是错的,因为没有"用户" PFUser类中的(Parse.CHATROOM_USER)字段。我只是想知道是否有办法做到这一点,不首先解雇roomQuery并将返回的PFUser放入一个数组,然后解雇接待员用户查询并组合数组。
有什么想法吗?
答案 0 :(得分:0)
我不完全确定你在问什么,但如果你想让一个查询找到一个特定类型的用户,我会以不同的方式处理这个问题。我会为我正在搜索的内容添加一个bool类型到用户类,并只查询具有该bool类型的所有用户为true!