gpt4 book ai didi

elixir - 预加载中的ecto order_by

转载 作者:行者123 更新时间:2023-12-01 10:19:29 24 4
gpt4 key购买 nike

所以我在使用order_by函数的查询中使用preload遇到麻烦。

通常我在order_by函数中使用list_member
list_member

def list_members() do
query =
from(
p in Member,
select: p,
order_by: [desc: p.inserted_at], # descending order
preload: [:avatar]
)

Repo.all(query)
end

但是在我的 get_member_2函数中,我不知道将 order_by放在哪里
def get_member_2!(id) do
query =
from(
p in Member,
where: p.id == ^id,
select: p,
preload: [:avatar],
preload: [:activities] # How to order_by in here
)

Repo.one!(query)
end

最佳答案

您必须创建一个子查询并在那里订购

def get_member_2!(id) do
query =
from(
p in Member,
where: p.id == ^id,
select: p,
preload: [
:avatar,
activities:
^from(
a in Activity,
order_by: [desc: a.inserted_at]
)
]
)

Repo.one!(query)
end

成员和事件的匹配是自动完成的

关于elixir - 预加载中的ecto order_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252272/

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