Whats the quickest way to see the number of entries in my database? I'd like to see the number of posts in my posts/index view.
Say I have a Post model and a bunch of posts saved in my database. In Rails I could do something like this in a view file:
<h1><%= @posts.length %> Posts</h1>
or
<h1><%= @posts.size %> Posts</h1>
or
<h1><%= @posts.count %> Posts</h1>
What's the Phoenix Framework/Elixir equivalent?
If you've already loaded the posts in memory in your controller using
Repo.all
, you can uselength/1
to count the number of items in the list. This is equivalent to.length
in Ruby/Rails.If you want to run the count query in the database instead, you can do:
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.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