elixir - Ecto order_by in preload
问题描述
So I'm having trouble using order_by
in my query with preload
function.
Usually I use order_by
like in this list_member
function
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
But Here in my get_member_2
function I don't know where to put the 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
解决方案
you have to create a subquery and order there
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
The matching of member and activity is done automatically
推荐阅读
- android - 如何使用 Epoxy 在列表中实现可折叠/可扩展项目?
- php - 什么是 Kotlin 等效的函数 openssl_private_decrypt?
- git - npm version "脚本可以访问 package.json 中的新版本"
- javascript - 通过 Onclick 使用 appendChild/replaceChild 函数切换图像堆栈
- python - 如何在 mac OS 10.14.4 上安装枕头(PIL)?
- unity3d - 区域灯根据摄像机角度/位置关闭 (HDRP)
- android - 如何在 NestedScrollView 中获取 overScroll 高度?
- spring-boot - 如何在 Spring Security 中自定义 BadCredentials 异常的 json 响应?
- python-3.x - IndexError:列表索引超出范围(shutil)
- python - 一个数据列作为整数,另一个作为对象的独立性卡方检验?