Count the Number of Entries in an Ecto Repository

為{幸葍}努か 提交于 2019-12-04 22:18:41

If you've already loaded the posts in memory in your controller using Repo.all, you can use length/1 to count the number of items in the list. This is equivalent to .length in Ruby/Rails.

length(@posts)

If you want to run the count query in the database instead, you can do:

Repo.one(from p in Post, select: count("*"))

You can also add where: filter to the query to restrict the posts to e.g. created by a specific user. This is equivalent to doing .count in Rails.

Gazler

The options that Dogbert has provided are both correct and should be used for Ecto 1.x.

In Ecto 2.0 you can use Repo.aggregate/4

Repo.aggregate(Post, :count, :id)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!