如何在预紧力中聚合

时间:2019-02-08 06:18:45

标签: elixir phoenix-framework ecto

所以我有3个表借款人头像贷款

借款人-> has_one头像

借款人-> has_many贷款

贷款控制人

def list_borrowers do

query =
  from(
    p in Borrower,
    select: p,
    preload: [:avatar],
    preload: [:loan] # I WANT TO AGGREGATE THIS USING COUNT
  )

IO.inspect(Repo.all(query))end

这正常工作,我的问题是我不知道如何汇总贷款

我只想知道那个借款人的所有贷款的数目。

1 个答案:

答案 0 :(得分:2)

我不知道任何preload聚合的可能方法,但是您可以改为声明virtual field并将其包含在查询中,如下所示:

from p in Borrower,
  join: l in Loan,
  on: p.id == l.borrower_id,
  select: %{p | loan_count: count(l.id)}, # virtual field
  preload: [:avatar]