gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:17 24 4
gpt4 key购买 nike

有没有办法直接通过关系对象的属性查询对象?

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

每个用户有很多个安装,我有一个从每个安装到它的用户的指针,形成多对一的关系。

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

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

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

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

有没有更好、更简洁的方法来做到这一点?

谢谢!

最佳答案

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

在这种一对多关系的场景中,您可以在两种方法之间进行选择:RELATION 或 ARRAY of objects。

如果您使用 RELATION,作为一个优势,您对关系中的项目几乎没有限制。但是,缺点是需要查询关系来获取信息,导致你提到的方法有很多查询。

如果您使用 ARRAY 对象,作为一项优势,您可以在查询中包含此字段,这样您只需一个查询即可获得所有子对象。但是,作为一个缺点,您将被限制为 100 个 child 。

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

关于javascript - 解析 Javascript - 如何通过关系对象的属性进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com