Parse Query из 2 коллекций - PullRequest
       10

Parse Query из 2 коллекций

0 голосов
/ 28 августа 2018

Я использую Parse в приложении iOS Swift и не могу понять, как выполнить запрос к двум коллекциям, я думаю, что похоже на объединение.

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

Вот код разбора, используемый для получения списков, но я понятия не имею, как добавить второе условие из пользовательской коллекции.

            let query = PFQuery(className: "Listing")
        query.order(byDescending: "createdAt")
        query.whereKey("categoryHome", equalTo: type.rawValue)
        query.limit = limit
        query.skip = skip
        query.findObjectsInBackground { (objects, error) -> Void in
            if let objects = objects as? [Listing]
            {
                success(objects)
            }
            else
            {
                let error = error! as NSError
                let errorMessage = "\(error.localizedDescription)\n(\(error.code))"
                SVProgressHUD.showError(withStatus: errorMessage)
            }
        }

Я собирался сделать что-то подобное, чтобы запросить пользователя, но мне нужно добавить его в запрос выше.

    let userQuery = PFUser.query()
    userQuery.whereKeyDoesNotExist("onVacation")

Итак, как мне объединить те, чтобы сделать один запрос, который ищет все списки, где пользователь не в отпуске?

Если бы кто-то мог показать мне быстрый фрагмент или указать мне пример, в котором запрос выполняется по двум коллекциям, это было бы замечательно. Я прочитал документ разбора об отношениях, квестах и ​​т. Д., Но все еще не могу понять, как соединить два вышеупомянутых запроса.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 29 августа 2018

Из вашего поста не ясно, как вы связываете пользователей с листингами, но при условии, что в листинге есть указатель на пользователя, вы могли бы сделать что-то подобное

var userQuery = PFUser.query()
userQuery!.whereKeyDoesNotExist("onVacation")
var listQuery = PFQuery(className:"Listing")
listQuery.whereKey("categoryHome", equalTo: type.rawValue)
listQuery.whereKey("user", matchesQuery: userQuery!)
listQuery.findObjectsInBackgroundWithBlock {
   (results: [PFObject]?, error: NSError?) -> Void in
   if error == nil {
   // results will contain lists where the user is not on vacation
   }
}

Если вы хотите узнать больше о matchesQuery, ознакомьтесь с Руководством по парсингу iOS

...