gpt4 book ai didi

elixir - Ecto:使用 has_many 关联订购集合中的预加载数据

转载 作者:行者123 更新时间:2023-12-04 10:23:12 26 4
gpt4 key购买 nike

假设我有这个用于获取所有线程:

Thread |> Thread.ordered |> Repo.all |> Repo.preload([:posts])

如何为 :posts 提供 order_by 子句?我似乎在文档中找不到任何引用 Ecto.Repo.preload/1 的内容,因此提供的示例似乎都没有帮助弄清楚如何正确使用此语法。

最佳答案

Ecto.Query模块使得将某些查询应用于预加载等事情变得非常容易。

我们实现这一目标的方法是传递查询 进入 preload 函数,然后将 preload 的结果限制为该查询。

例如,在您的情况下:

import Ecto.Query # => Needed to use the ecto query helpers

Thread
|> Thread.ordered
|> Repo.all
|> Repo.preload([posts: (from p in Post, order_by: p.published_at)])

(假设您在帖子上发布了字段)

关于elixir - Ecto:使用 has_many 关联订购集合中的预加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com