如何在预加载中聚合

How to aggregate in preload

所以我有 3 个表 borroweravatarloan

借款人 -> 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

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

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

我不知道 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]