PFQuery запрашивает n количество PFUser и PFObjects

#ios #relational-database #parse-platform

#iOS #реляционная база данных #синтаксический анализ-платформа

Вопрос:

Я использую Parse.com и у меня есть вопрос относительно их реляционной базы данных. У меня есть класс User (класс _User по умолчанию), который в качестве одного из своих столбцов содержит массив «друзья». Этот массив друзей состоит из указателей на других пользователей.

Что я хочу сделать сейчас, так это заполнить временную шкалу в стиле Facebook, где в начале приложения я запрашиваю у моего текущего пользователя его массив друзей и его сообщений, но он также запрашивает массив друзей пользователя и их сообщения.

У меня уже есть массив друзей. Я также могу запросить своего текущего пользователя, и я могу запросить конкретного пользователя.

Мой вопрос в том, как мне эффективно запрашивать сообщения для n сообщений пользователей? Хотя я могу запрашивать конкретных пользователей 1 на 1, это становится очень медленным, если у пользователя более 100 друзей, поскольку мне нужно будет запрашивать сообщения у каждого из его друзей.

Спасибо. PS: я использую iOS.

Ответ №1:

Я предполагаю, что у вас есть Post класс, в котором вы храните сообщения пользователей. Затем вы можете получать сообщения от нескольких пользователей, используя containedIn

 PFQuery *query = [PFQuery queryWithClassName:@"Post"];
[query whereKey:@"user" containedIn:friends]; //friends is an array of users
 

Или вы можете использовать matchesKey. Некоторый код из любого примера:

 PFQuery *followingActivitiesQuery = [PFQuery queryWithClassName:kPAPActivityClassKey];
[followingActivitiesQuery whereKey:kPAPActivityTypeKey equalTo:kPAPActivityTypeFollow];
[followingActivitiesQuery whereKey:kPAPActivityFromUserKey equalTo:[PFUser currentUser]];
followingActivitiesQuery.limit = 1000;

PFQuery *photosFromFollowedUsersQuery = [PFQuery queryWithClassName:self.className];
[photosFromFollowedUsersQuery whereKey:kPAPPhotoUserKey matchesKey:kPAPActivityToUserKey inQuery:followingActivitiesQuery];
[photosFromFollowedUsersQuery whereKeyExists:kPAPPhotoPictureKey];
 

Комментарии:

1. Прохладный. Я не знал о containedIn. Я попробую и сообщу об этом