Ich arbeite derzeit an der Migration meiner Clojure-App (mit Korma) zu Datomic-Framework und war in einer Schleife, während ich die Abfragen übersetzte. Ich weiß, dass die Abfragen nicht vollständig flexibel sind (im Vergleich zu Korma), zum Beispiel möchte ich bedingte Klauseln um verschiedene Variablen bewerten.Datomic - Arbeiten mit OR-Klausel
Unter Berücksichtigung einer Korma Abfrage
(select users
(where (or (and {:first_name [= "user"]}
{:last_name [= "sample"]})
{:email [= "[email protected]"]})))
dies kann wie folgt mit etwas Datomic, umgewandelt werden?
[:find ?e
:where (or (and [?u :user/first-name "user"]
[?u :user/last-name "sample"])
[?u :user/email "[email protected]"])
aber dies ist nicht der empfohlene Weg (nach Datomic docs) abzufragen, da alle Klauseln in einem oder Klausel verwendet werden, müssen den gleichen Satz von Variablen verwenden. Wie lege ich eine OR-Klausel um verschiedene Variablengruppen fest?
'(d/q‚[(ungetestet!): Finden u :? In $ first-name letzt Name? E-Mail : wo (oder (und [? u: Benutzer/Vorname? Vorname] [? u: Benutzer/Nachname? Nachname]) [? u: user/email? email ]]] ' würde in diesem Fall nicht funktionieren, da die Variablen unterschiedlich sind ent –
Ich aktualisierte die Antwort für dieses Szenario. –