我有两个class,一个是user,一个是userInfo。
其中userInfo里面有一个字段叫userId,是一个pointer,就是user。还有一个字段是version,类型是string。
现在我要查询userInfo里面version是1.0的所有用户,按照时间排序。
目前我的方案是先获取userInfo里面符合条件的userId,然后再获取所有userId的数据。但是这样就做了两次网络请求。
能不能一次获取呢?
let infoQuery = UserInfo.query()
infoQuery.whereKey("version", equals: "1.0")
infoQuery.orderByDescending("updatedAt")
上面的代码获取的是userInfo的结果,我想要user的结果,如果用user进行query,那么就还要在userInfo里面去查询一次。
有没有只做一次查询的解决方案呢?
已经解决了。
不应该把user作为pointer放入UserInfo里面。应该把UserInfo放入User里面,就可以了。
也就是说,User表里面有userInfo字段,类型是Pointer。UserInfo里面只有version字段。
这样就可以用下面的代码做查询了。
如果大家有更好的解决方案,欢迎提出来。