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

Clojure Datomic-如何收回属性的所有值,clojure,datomic,Clojure,Datomic,我需要记录实体中特定属性的所有值(对于datomic模式)。retract函数要求将属性的值作为参数传递,但它们太多了,我只需要将它们替换为一组新的值。是否可以通过clojure实现?您可以查询所有值并在对等方中生成所需的收回,或者,如果您希望在写入新值之前确保“空属性”,请在事务函数中执行相同操作 (map (fn [v] [:db/retract eid attrib v]) (d/q '[:find [?v ...] :in $ ?e ?a

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

您可以查询所有值并在对等方中生成所需的收回,或者,如果您希望在写入新值之前确保“空属性”,请在事务函数中执行相同操作

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

您可以查询所有值并在对等中生成所需的收回,或者,如果您希望在写入新值之前确保“空属性”,请在事务函数中执行相同操作

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

谢谢,利昂,我试试看。你也可以在一个事务函数中提供执行上述操作的代码片段(如你所提到的)@Abhinav只需编写一个事务函数并从内部使用该代码片段-它基本上是样板文件谢谢Leon,我会尝试的。您还可以在事务函数中提供执行上述操作的代码段(如您所述)@Abhinav只需编写一个事务函数并从内部使用代码段,它大部分是样板文件