我有以下表结构:
用户
id
email
etc
会话
id
消息
Id
Convo Id
User Id (the creator)
data
参与者
Convo_id
User_id (the user who is part of the conversation)
我的问题是使用Parse.com如何制定查询,以便我可以执行以下操作:
作为用户a,我希望得到所有的对话。因此,首先浏览参与者表并获取每个Convo_id,其中User_id = UserA.id
然后我有一个UserA所拥有的Convo_id数组。 我的问题是如何使用原始查询中的每个Convo_id返回并让其他参与者?
答案 0 :(得分:1)
从问题的外观来看,Participants
类实际上应该只是User
上Conversation
的数组。
如果您的模型是按照我的描述构建的,那么您只需按如下方式查询Conversation
:
query.equalTo('Participants', userA);
在数组属性上使用equalTo()
表示“数组包含此值”。当值为ParseObject时,它将比较objectId并查看它是否在数组中。
另外,请确保不要手动存储ID,在存储Parse对象的代码中,它会将ID存储为参考,这意味着您可以更好地使用系统。
如果您确实需要将Participants
类用作多对多连接,则可以使用:
query.equalTo("user", userA);
// include the full conversation class from its link
query.include("convo");
结果将为Participants
,其convo
属性为完整Conversation
实例。理论上,如果您的数据允许,您可能会多次使用相同的对话,如果需要,您可以根据需要过滤掉重复的对象。