通过子关系 ParseSwift 查询父级
Posted
技术标签:
【中文标题】通过子关系 ParseSwift 查询父级【英文标题】:Query Parent by Child Relation ParseSwift 【发布时间】:2022-01-08 06:42:52 【问题描述】:我希望通过子关系对象查询我的父 ParseObject。我有一个名为 Matches 的父级,它有一个字段 Relation(Wrestlers)。我想找到摔跤手所属的所有比赛。非常感谢任何帮助,因为我只能找到 ParseSwift 库的过时版本的文档,而操场似乎没有帮助,因为它只使用内置关系而不是自定义对象。
此查询不返回任何结果。 Wrestler 设置为 ParseObject 的一个实例,我想在其上过滤关系
let query = Match.query("wrestlers" == wrestler).includeAll()
【问题讨论】:
您的代码看起来不错。您的关系名称是wrestlers
还是Wrestlers
?另外,你能分享一下你是如何创建wrestler
var的吗?
【参考方案1】:
playgrounds 表示角色和关系状态:
使用此关系,您可以与其他
ParseObjecs
创建多对多关系,类似于users
和roles
。
基本上,如果您遵循Roles
示例,您应该能够创建任何关系和查询。特定于您的用例(至少使用您在问题中提供的少量代码):
let match = Match() // Next time, please provide the code for all of your ParseObjects in question.
let matchRelation = match.relation("wrestlers", child: wrestler)
do
let wrestlers = try await match.relation.query(wrestler).includeAll().find()
print("Found related wrestlers: \(wrestlers)")
catch
print(error)
在ParseSwift
2.4.0+ 中,您可以执行以下操作:
let matchRelation = match.relation("wrestlers", child: wrestler)
do
let wrestlers = try await wrestler.relation.query("wrestlers", parent: match).includeAll().find()
print("Found related wrestlers: \(wrestlers)")
catch
print(error)
如果需要更清楚,您可以参考Playgrounds in the pending PR。
我只能找到 ParseSwift 库过时版本的文档,而 Playground 似乎没有帮助,因为它只使用内置关系而不是自定义对象。
这不是真的,因为 ParseSwift SDK 的唯一文档是 API documentation 和 Swift Playgrounds,它们都是最新的。如果您指的是ios SDK 的documentation,那是与 ParseSwift SDK 完全不同的 SDK。 iOS SDK 是一个与 Swift 桥接的 Objective-C SDK,与 SDK 无关。
【讨论】:
以上是关于通过子关系 ParseSwift 查询父级的主要内容,如果未能解决你的问题,请参考以下文章
MAX日期的Laravel子查询-与父级的子查询链接中的日期时间格式无效