使用ecto 2.0更新多个记录

时间:2016-06-15 09:52:10

标签: elixir phoenix-framework ecto

我可以在ecto 2.0中插入多条记录:

iex(1)> categories = [%{name: "stackoverflow", url: "stackoverflow.com"}]

iex(2)> App.Repo.insert_all App.Category, categories

是否可以一次更新多条记录?

iex(1) > category = App.Repo.all(App.Category) |> hd

iex(2) > changeset = App.Category.changeset(category, %{name: "test"})

iex(3)> App.Repo.insert_all App.Category, [changeset]

我在抓取外部网页后每天都要插入或更新类别的情况。似乎Ecto 2.0中有Multi功能。关于如何解决这个问题的任何指示?

1 个答案:

答案 0 :(得分:5)

正如insert_all/3函数一样,还有一个update_all/3函数。 update_all/3采用可查询(%MyApp.SomeModel{}或查询),更新关键字列表([name: "John"])和可选的关键字选项列表。