gpt4 book ai didi

node.js - 书架关系检测是否已获取

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:12 24 4
gpt4 key购买 nike

如何确定 Bookshelf hasMany 关系是否根本没有加载或者只是空的?

根据 Bookshelfjs 文档:

The related method returns a specified relation loaded on the relations hash on the model, or calls the associated relation method and adds it to the relations hash if one exists and has not yet been loaded. Model#related

如果将 { withRelated: ['relation'] } 赋予 fetch,则在将 debug: true 设置为 Knex 时,关系将被加载,如输出所示,并且 lated('relation') 包含模型(如果存在)。

但是,如果没有相关模型,则 lated('relation') 的返回值似乎与根本不提供 withRelated 选项时相同,即。它不能用于确定数据是否之前已加载。多次调用 lated('relation').fetch() 会产生同样多的 SQL 查询。

我是否做了一些根本错误的事情,或者我真的只需要为关系构建自己的缓存?我有需要过滤的关系,并且希望模型实例对过滤后的数据有很好的 getter,而不需要在每次调用时从数据库中重新获取关系。

最佳答案

官方没有办法,见GitHub issue .

<小时/>

但是如果你愿意,你可以通过官方不支持的方式来检查:

modelInstance.relations[relationName]
// e.g.
user.relations.organization // undefined if not fetched yet

关于node.js - 书架关系检测是否已获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44277648/

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