如何使用Swift查询解析服务器中的一对多关系

时间:2016-10-30 21:31:37

标签: swift parse-platform parse-server

我正在尝试使用Swift在Parse中构建一个聊天应用。在viewDidLoad我想查询Dashboard以获取新消息。我使用下面的代码,但没有得到任何结果,解析不会给我任何错误。由于Parse不知道连接,我如何根据子查询获取聊天数据?

我的计划是做这样的事情:

Select * from Chat inner join ChatMember where chat.objectId =  ChatMember.chatId and user = <current user>

代码

    let squery = PFQuery(className: "ChatMember")
    squery.whereKey(“user”, equalTo:(PFUser.current())!)


    let query = PFQuery(className: "Chat")
    query.whereKey("chatId", matchesQuery: squery)

    // tried it with this one too, but same result

    query.whereKey("objectId", matchesKey:"chatId", in: squery)

数据结构

Class Chat {objectId: String, owner: Pointer _User, name: String,    lastActivity: Date}

Class ChatMember {objectId: String, chatId: Pointer Chat, user: Pointer _User, memberSince: Date,  lastActivity: Date, Mute: Boolean}

Class Message {objectId: String, chatId: Pointer Chat, author: Pointer _User, createAt: Date, message: String }

测试我已经做过:

数据库中的字段是正确的。因为如果我向ChatMember添加一个新列并将聊天ID存储为字符串,那么它可以很好地工作。只是没有指针:

let squery = PFQuery(className: "ChatMember")
squery.whereKey(“user”, equalTo:(PFUser.current())!)


let query = PFQuery(className: "Chat")
query.whereKey("objectId", matchesKey:"CHATID_AS_STRING", in: squery)

0 个答案:

没有答案