def list_links_count do
query =
from l in Link,
join: c in Click, as: :click,
where: c.link_id == l.id,
group_by: l.id,
select: {l, count(l.id)}
query |> Repo.all
end
我有一个功能,可以计算每个链接的点击次数。问题在于最终的数据结构,其格式为{Link, 10}
。我真正想做的是将它放入put_in,这样我就可以在视图中更轻松地访问它,例如link.click_count
。有可能吗?
答案 0 :(得分:2)
您的Ecto模式中是否有用于链接的虚拟字段?如果没有,您将要添加它:
field(:click_count, :integer, virtual: true)
然后您选择的内容如下所示:
select: %{l | click_count: count(l.id)}
由于您现在在click_count
结构中拥有一个Link
键,因此您可以放置该键,并且仍然具有Links
的列表。因此,您应该可以访问link.click_count
。
答案 1 :(得分:1)
{Link, 10} |> elem(1)
#⇒ 10
因此,在您的代码中:
query
|> Repo.all()
|> how_do_you_get_tuple()
|> elem(1)