计算 Ecto 存储库中的条目数
Count the Number of Entries in an Ecto Repository
查看数据库中条目数的最快方法是什么?我想在我的 posts/index 视图中查看帖子数。
假设我有一个 Post 模型和一堆帖子保存在我的数据库中。在 Rails 中,我可以在视图文件中执行类似的操作:
<h1><%= @posts.length %> Posts</h1>
或
<h1><%= @posts.size %> Posts</h1>
或
<h1><%= @posts.count %> Posts</h1>
Phoenix Framework/Elixir 相当于什么?
如果您已经使用 Repo.all
将帖子加载到控制器的内存中,您可以使用 length/1
来计算列表中的项目数。这相当于 Ruby/Rails.
中的 .length
length(@posts)
如果你想运行数据库中的计数查询,你可以这样做:
Repo.one(from p in Post, select: count("*"))
您还可以将 where:
过滤器添加到查询以限制帖子,例如由特定用户创建。这相当于在 Rails.
中执行 .count
提供的选项都是正确的,应该用于 Ecto 1.x。
在 Ecto 2.0 中你可以使用 Repo.aggregate/4
Repo.aggregate(Post, :count, :id)
查看数据库中条目数的最快方法是什么?我想在我的 posts/index 视图中查看帖子数。
假设我有一个 Post 模型和一堆帖子保存在我的数据库中。在 Rails 中,我可以在视图文件中执行类似的操作:
<h1><%= @posts.length %> Posts</h1>
或
<h1><%= @posts.size %> Posts</h1>
或
<h1><%= @posts.count %> Posts</h1>
Phoenix Framework/Elixir 相当于什么?
如果您已经使用 Repo.all
将帖子加载到控制器的内存中,您可以使用 length/1
来计算列表中的项目数。这相当于 Ruby/Rails.
.length
length(@posts)
如果你想运行数据库中的计数查询,你可以这样做:
Repo.one(from p in Post, select: count("*"))
您还可以将 where:
过滤器添加到查询以限制帖子,例如由特定用户创建。这相当于在 Rails.
.count
在 Ecto 2.0 中你可以使用 Repo.aggregate/4
Repo.aggregate(Post, :count, :id)