Fork me on GitHub
#datomic
<
2024-03-04
>
Akane09:03:44

hi everyone, i have just encountered a problem where i can't use function arguments passed into a query:

(defn query-username
  [username]
  (api/q
    '[:find ?e
      :where [?e :users/username ?username]] ;; here
    (api/db (:users @schema/conn))))
in which i want to query for the username of someone do anyone know how?

tatut09:03:23

you are missing :in $ ?username and passing the parameter

tatut09:03:34

a query can’t reach into the clj local scope, parameters must be passed in to the query explicitly

Akane09:03:24

i just did

(defn query-username
  [username]                                                                       (api/q
    '[:find ?e
      :in $ [?username]
      :where [?e
              :users/username ?username]]                                            (api/db (:users @schema/conn)) [username]))
and it works thank you so much