Ecto.Repo 检查数据库中是否存在id,Phoenix框架

Ecto.Repo to check if id exists in the database, Phoenix framework

如果没有找到记录,

Repo.get! 会抛出错误。 您可能想使用 Repo.get 而不是

Repo.get(User, user_id) != nil

您还可以定义一个函数来检查给定的用户 ID 是否存在

def user_exist_by_id(user_id)do
    #select just id to reduce payload
    query = (from u in User, where: u.id == ^user_id, select: %{id: u.id})
    found = Repo.one(query)
    #if not result, found will be nil
    found != nil
end

Ecto v3 通过 Ecto.Repo.exists?/2

支持此功能
import Ecto.Query, only: [from: 2]

Repo.exists?(from u in User, where: u.id == ^user_id)