2016-04-10 17 views
1

エンティティの特定の属性のすべての値が必要です(データ・スキーマの場合)。 retract関数では、属性の値を引数として渡す必要がありますが、属性の値が多すぎるため、新しい値のセットで置き換える必要があります。 via clojureを達成することは可能ですか?Datomic - 属性のすべての値を取り消す方法

答えて

2

新しい値が書き込まれる前に「空の属性」を確保する場合は、すべての値を照会して目的の退縮を生成することもできます。

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

ありがとう、レオン、私はそれを試してみます。また、トランザクション関数内で上記を行うためのスニペットを提供することもできます(前述したように) – javdev

+0

@Abhinavトランザクション関数を記述し、内部からスニペットを使用するだけです - http://docs.datomic.com/ database-functions.html –

関連する問題