【问题标题】:Convert Ecto Query into a map将 Ecto Query 转换为地图
【发布时间】:2021-03-15 09:07:28
【问题描述】:

当使用Ecto.Queryfrom() api 时,有没有办法将 Enums/List 的结果转换为地图?

getData()
|> Repo.all()

...

def getData do
  from (e in Example, select ... where ...
end

这会返回类似

[%{data1: data, data2: data}]

如何将其转换为类似的地图

%{data1: data, data2: data}

我试过了

getData()
|> Repo.all()
|> Enum.into(%{})

但这不起作用

【问题讨论】:

    标签: elixir phoenix-framework ecto


    【解决方案1】:

    您想如何/在哪里使用输出?

    如果您在输出中只有一条记录,请使用 Repo.one,而不是 Repo.all,它会将结果作为 %{} 提供给您。

    另一方面,如果您想从 [%{data1: data, data2: data}] -> %{data1: data, data2: data},使用类似

    [x] = 
      getData()
      |> Repo.all()
    

    "x" 将是您想要的,但是如果您期望多行是没有意义的,因为您需要将它放在某种列表中......如果您期望一行,那么如上所述使用Repo.one.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 2023-03-09
      • 2012-11-30
      相关资源
      最近更新 更多