有一个属性:organisation/ord
。这就是我将数据结构传递给d/transact
的方式:
(assoc (d/pull db [:db/id] (:db/id organisation)) :organisation/ord new-org-ord)
;; => {:db/id 17592186045432, :organisation/ord 4198}
此处organisation
的类型为datomic.query.EntityMap
,new-org-ord
为integer
。这很好,但看起来很笨拙。是否有更简单的代码执行相同的工作?
认为我需要做的就是将EntityMap
转变成真实的map
我试过这个:
(assoc (into {} organisation) :organisation/last-invoice-ordinal new-org-ord)
但得到了:
:db.error / not-an-entity无法在datom中解析实体:#:db {:id 17592186045433} [-9223301668109597772:organization / timespan#:db {:id 17592186045433}]
答案 0 :(得分:0)
这更简单:
{:db/id (:db/id organisation), :organisation/ord new-org-ord}
这里还有另一种选择:
(assoc (select-keys organisation [:db/id]) :organisation/ord new-org-ord)
与地图条目中除了地图条目之外的任何地图进行交易以确定要对其声明某些新事实的实体ID以及表示的地图条目一起真的没有意义那些事实。