解析Javascript-如何通过关系对象进行查询's属性

Parse Javascript - How to query by relationship object's attribute

本文关键字:查询 属性 Javascript- 何通过 关系 对象 解析      更新时间:2023-09-26

我想知道是否有一种方法可以通过关系对象的属性直接查询对象?

这听起来可能令人困惑,例如:

每个用户都有许多安装,我有从每个安装到其用户的指针,形成了多对一的关系。

我想找到属于给定用户名的一个用户的所有安装。

类似的用例:查找属于姓氏为"James"的用户的所有安装。但在这种情况下,有很多用户而不是一个。

我目前的解决方案是,query.find具有给定条件的用户,然后使用query.equalTo("user",fetchedUser)为每个用户执行安装查询。这感觉非常麻烦和昂贵。

另一种解决方案是"压平"对象,并在查询目标对象上放置尽可能多的属性。所以我们可以只使用query.find一次。对于我们的示例:在安装时放置用户名和姓氏的副本。但是,如果我们最终不使用用户对象,那么数据的关系就不那么密切了;如果我们选择保留用户对象,那么在更新用户(母对象)时,需要进行复杂的同步,直到安装(子对象),反之亦然。

有更好、更干净的方法吗?

谢谢!

是的,有一种更清洁的方法。几个月前我遇到了这个问题。

在这种一对多关系的场景中,可以在两种方法之间进行选择:对象的关系或数组。

如果你使用关系,作为一种优势,你对关系中的项目几乎没有限制。然而,作为一个缺点,您需要查询关系来获得信息,这导致了您提到的方法,其中包含许多查询。

如果您使用对象的ARRAY,作为一个优势,您可以在查询中包含此字段,这样您就可以通过一个查询获得所有子项。然而,作为一个缺点,你将被限制为100个孩子。

当我们谈论用户及其安装时,我认为对象阵列是解决这种情况的最佳方法。