Parse: Include nested pointers in query

rorymadden picture rorymadden · Jul 1, 2014 · Viewed 8.9k times · Source

I have the following structure in my app:

MessageRecipients -> Message -> User 
                     Message -> Activity

where the -> represent a pointer. I have separated out the messages and message recipients tables because I need to capture whether the message has been read by each recipient.

The query I want to do is find all of the messages for a recipient. So I need to include the message in the MessageRecipients query but I would also like to include the nested User and Activity objects.

var MessageRecipient = new Parse.Query('MessageRecipient');
messageQuery.equalTo('recipient', query.recipient);
messageQuery.include('message');

The message comes back without the activity and sender populated. I tried calling messageQuery.include('activity') but that didn't work as activity is not on the correct table.

Is there a way to do this query or do you have to do separate queries for the nested objects?

Answer

Fosco picture Fosco · Jul 1, 2014

You'll need to include those sub-sub-objects as well:

messageQuery.include('message');
messageQuery.include('message.user');  // if user is the column name
messageQuery.include('message.activity'); // if activity is the column name