ios - 从 2 个集合中解析查询
问题描述
我在 iOS Swift 应用程序中使用 Parse 并且无法找出如何对两个集合进行查询,我想类似于加入。
我有一组列表,它们包含家庭信息和用户 ID。我向用户集合添加了一个键值,指示用户是否正在度假。我要做的查询是查找用户未休假的所有列表。
这是用于检索列表的解析代码,但我不知道如何从用户集合中添加第二个条件。
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")
那么,如何将这些组合起来进行一个查询,以查找用户未休假的所有列表?
如果有人可以给我看一个快速的片段,或者给我一个示例,在其中对两个集合执行查询,那就太好了。我已经阅读了关于关系、查询等的解析文档,但仍然无法理解如何将上面的两个查询放在一起。
谢谢你的帮助。
解决方案
从您的帖子中不清楚您如何将用户与列表相关联,但假设列表有一个指向用户的指针,那么您可以做这样的事情
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
,请查看Parse iOS 指南
推荐阅读
- javascript - 检查 'PodCastScreen' React Native 的渲染方法
- javascript - JS注册表未将所有信息提交到MYSQL数据库
- python - 'float' 类型的非 int
- heroku - Heroku Spring Redis - SessionDestroyedEvent
- python - 解析从 Internet 派生的 XML 文件
- sql - 查询重复记录
- dns - 要启用 DNSSEC,是否需要将域名服务器设置为域注册商?
- c# - 是什么导致 Xamarin Forms 构建上的“无法识别的选择器发送到类”错误?
- java - 将 Json 作为字符串接收并转换为 Java 对象
- firebase - 我们是否为 .validate() 读取收费?