使用ecto计算关联的模型行

Bit*_*ise 2 elixir ecto phoenix-framework

我正在尝试查找有多少项目属于特定用户.

我知道你可以这样做以获得模型的计数:

count = User |> Repo.aggregate(:count, :id)
Run Code Online (Sandbox Code Playgroud)

但是,如何找到属于该用户的项目数?

Dog*_*ert 6

这是一种方法:获取用户,assoc/2用于为其关联创建查询,然后按照您现在正在执行的方式对其进行计数:

User |> Repo.get(123) |> assoc(:projects) |> Repo.aggregate(:count, :id)
Run Code Online (Sandbox Code Playgroud)