【发布时间】:2020-05-26 22:05:14
【问题描述】:
尝试创建一个新属性,其中值是对同一实体的不同属性进行转换的结果。所以,假设我有一个数据库,其中每个实体都有属性:content。我想为每个名为:transformed 的实体添加一个附加属性,其值是将函数f 应用于:content 的结果。我将如何以惯用的方式有效地解决这个问题?目前尝试通过执行事务并将新属性的值分配给应用于查询该实体原始属性值的函数的值来做到这一点。
如果不是很明显,我对 Datalog 和 Datascript 还很陌生
(doseq [included-block-ds-id (vec (ds/q '[:find ?id
:where
[?id :block/included true]]
@conn))]
(let [content (first (first (vec (ds/q '[:find ?content
:where
[?included-block-ds-id :block/content ?content]]
@conn))))]
(ds/transact! conn [[:db/add (first included-block-ds-id)
:block/hiccup (block-content->hiccup
conn
content)]])))
【问题讨论】:
标签: clojurescript datalog datascript