gpt4 book ai didi

javascript - 使用 FeathersJS 建立深层嵌套的父子关系

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:39 26 4
gpt4 key购买 nike

我想知道建立深层嵌套父子关系的最佳方法是使用 Feathers 的 recommended Association Method?

如果我的条目是:

[
{"name": "Grandpa", "id": 1, "parent": null},
{"name": "Mom", "id":2, "parent": 1},
{"name": "Baby", "id": 3, "parent": 2}
]

然后,如果我想找到树的顶层父级,我会进行递归获取,直到到达树的顶层:

const family = app.service('/family')
function get_ancestors(childId, parents){
const child = family.get(childId)
if(child.parent){
parents.push(child.parent)
return get_ancestors(child.parent, parents)
} else {
return parents
}
}

但这对我来说似乎很笨拙而且不太可扩展。有没有更好的办法?这看起来像是 fastJoin会做,但它不是根据“推荐”的方法来做协会。我在指南中也没有看到任何超过 3 个级别的示例,除了在 batch-loaders, 中。这看起来比我们在这里需要的要复杂一些。使用 Feathers 遍历祖先树的“推荐”方式是什么?反过来说,如果我有爷爷,我怎么找宝贝?我的条目是否应该包含一个“children”数组,该数组在将 child 作为 parent 添加时填充?或者是否有更好的方法从父树的顶部到底部?

最佳答案

归根结底,Feathers 不是 ORM,因此处理关联在很大程度上取决于数据库和您选择的 ORM,这与处理其他框架(如 Express 或 KoaJS)时的情况大致相同。这意味着更大的灵 active ,但也没有真正做到这一点的唯一方法,链接的常见问题解答条目试图尽可能好地涵盖不同的选项。

fastJoin 确实支持嵌套关联,但如果您使用的是 ORM 可以处理优化查询的 SQL 数据库,则可能会更慢(Sequelize 也支持嵌套包含)。但它可以比 Mongoose $populate 更快。进行一些实验,看看哪一个效果最好。对于父/子关系,需要注意的一件事是循环依赖,因此您想使用可以处理该问题的东西。

关于javascript - 使用 FeathersJS 建立深层嵌套的父子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56360980/

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