elixir - 如何使用结构从关联中选择给定模型的所有字段以及选定字段以避免过度获取
问题描述
在这个查询中,有没有办法Candidate
在 select 中定义 struct 的所有字段?(* 由字段列表替换):
from([candidate: candidate, zone: zone, batch: batch, region: region] in query,
join: af in assoc(zone, :af),
join: zc in assoc(zone, :zc),
join: cc_zone in assoc(candidate, :cc_zone),
join: training_language in assoc(candidate, :training_language),
join: state in assoc(candidate, :state),
left_join: interview in assoc(candidate, :interview),
preload: [
zone: zone,
batch: batch,
training_language: training_language,
state: state
],
select:
struct(
candidate,
[
*,
training_language: [:id, :name],
batch: [:id, :identifier],
zone: [:id, :code],
state: [:id, :code]
]
)
)
还是我们需要手动添加候选人表中的所有字段?
--
在 slack 中收到的一项建议没有按预期工作:
select: canditate
select_merge: struct(
candidate,
[
training_language: [:id, :name],
batch: [:id, :identifier],
zone: [:id, :code],
state: [:id, :code]
]
)
这将返回候选结构,其中包含来自所有预加载关联的所有字段
解决方案
select: candidate
应该选择候选人的所有领域。此外,由于您预加载了所有必要的关联,它们也将被自动选择。
推荐阅读
- apache-spark - 同一个 Spark 操作的不同解释计划
- .net-core - Azure AD OAuth 2 验证令牌 .NET Core
- git - 智能 git stash 和 rebase
- java - 使用应用程序发送 HTTP 请求 - AndroidStudio
- numpy - 使用 Jupyter 的 NumPy
- python - 找到最接近的二维列表的数字并作为列表返回
- authentication - 使用 ST25R3911B 实现 Mifare 经典 1K 读/写
- bash - curl 命令在 shell 脚本中不起作用,但在站点上运行良好
- python - PyQt5 QListView 拖放创建新的隐藏项
- c# - 正则表达式删除某些重复字符但忽略其他字符