【发布时间】:2019-01-31 08:18:44
【问题描述】:
想象一下我有演员和电影。 我如何编写一个单个查询,对于给定的演员列表,返回该演员最近参与的五部电影的 5 元组列表(按电影日期降序排列)?
更具体地说:给定一个名为 actors 的 :db/id 列表,模型如下:
演员:
:db/id
:actor/name str
:actor/movie ref
电影:
:db/id
:db/name str
:db/date inst
我想编写如下查询:
(d/q '[:find ?actor ???????
:in $ [?actor ...]
:where ??????????] snapshot actors)
预期结果:
[[1 [2 3 4 5 6]
7 [8 9 10 11 12]]
1 和 7 是演员 ID,2,3,4,5,6,8,9,10,11,12 是电影 ID。
现在,我有一种强烈的感觉,不能构造这样的查询。 如果我是对的,我怎样才能分块获得这些信息(想象一下每个演员都有成吨成吨的电影,太多以至于无法记忆)?
【问题讨论】:
-
我想你要找的答案在这里:How to sort result in a Datalog query
-
谢谢!不幸的是,事实并非如此。