Datomic - 如何收回属性的所有值

Datomic - how to retract all values of an attribute

我需要实体中特定属性的所有值(对于数据模式)。 retract 函数需要将属性的值作为参数传递,但它们太多了,我只需要将它们替换为新的一组值。是否可以通过clojure实现?

您可以查询所有值并在您的同行中生成所需的撤回,或者,如果您希望确保 "empty attrib" 在写入新值之前,请在交易功能中执行相同的操作。

(map (fn [v] [:db/retract eid attrib v]) 
     (d/q '[:find [?v ...]
            :in $ ?e ?a
            :where [?e ?a ?v]
           db
           eid
           attrib))