我想知道是否有办法通过关系对象的属性直接查询对象?
这可能听起来令人困惑,例如:
每个用户都有很多安装,我有每个安装指向它的用户的指针,形成多对一的关系。
我想找到属于具有给定用户名的一个用户的所有安装。
类似的用例:查找属于姓氏为“James”的用户的所有安装。但是在这种情况下,有很多用户而不是一个。
我目前的解决方案是,query.find 具有给定条件的用户,然后为每个用户使用 query.equalTo("user", fetchedUser) 进行安装查询。这只是感觉非常麻烦和昂贵。
另一种解决方案是“展平”对象并在查询目标对象上放置尽可能多的属性。所以我们可以只使用一次 query.find。对于我们的示例:在安装时放置用户名和姓氏的副本。但是,如果我们最终不使用用户对象,那么数据的相关性就会降低;如果我们选择保留用户对象,则在更新用户(母对象)时需要进行复杂的同步到安装(子对象),反之亦然。
有没有更好、更清洁的方法来做到这一点?
谢谢!