environment_secrets
表会根据有多少个环境共享相同的机密来创建一行或多行:,我想做的是查询 secrets
表中的 environments
字段。,我遇到的问题是,虽然 Preload
将数据插入 environments
字段,但在 Find
子句期间它似乎不可用:,简而言之,我正在尝试编写此查询:在“secrets”表中,查找拥有这些秘密的匹配 userId,并查看秘密中关联的“environments.id”字段以查找匹配的 UUID特定环境 UUID(它也将由该用户拥有)
。,例如,如果我使用此 92a4c405-f4f7-44d9-92df-76bd8a9ac3a6
用户 UUID 查询 secrets
以检查所有权,并使用此 cff8d599-3822-474d-a980-fb054fb9 进行查询23cc
环境UUID,那么结果输出应该看起来像…,是否有一个 JOIN 查询或者可能是一个原始 SQL 查询,我可以编写以使 environments
行数据在 secrets
中可用以进行查询?,不太漂亮,但是这个原始狗 GORM SQL 查询按预期工作:,查询可以理解为…,将机密聚合为 r
(结果),其中 environments
字段具有:,与多对表秘密 ID 匹配的秘密 ID与环境 ID 匹配的多表环境 ID
并根据与参数用户 ID 匹配的秘密用户 ID 进行过滤,从
r
(结果)中查找 environments
JSON 数组中的部分参数化 id
。,以及一些使用 go Fiber 的示例 Go 代码:,