【问题标题】:Parse.com PFUser Query based on results from PFObject queryParse.com PFUser 查询基于 PFObject 查询的结果
【发布时间】:2015-06-01 11:29:26
【问题描述】:

我有一个包含用户的聊天室类。我可以成功查询该类并仅返回特定的 PFUser。

        // 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 并将返回的 PFUsers 放入数组中,然后触发接待员用户查询并组合数组。

有什么想法吗?

【问题讨论】:

    标签: ios parse-platform pfquery pfuser


    【解决方案1】:

    我不完全确定你在问什么,但如果你试图让一个查询找到特定类型的用户,我会以不同的方式处理这个问题。我会为我正在搜索的用户类添加一个 bool 类型,并且只需查询所有具有该 bool 类型为 true 的用户!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      相关资源
      最近更新 更多