Getting a seemingly bizarre problem with Datascript. For some reason when I run this query without it being wrapped in a function, everything works. But once I wrap it in a function, it returns the value for :block/content for every entity in the database. I'm confused because I haven't encountered any issues with wrapping other Datascript queries in the past. Does anyone more experienced than me with Datascript see any issues?
;; Works fine and returns the correct value
(ds/q '[:find ?block-text
:where
[?id :block/id "l_63xa4m1"]
[?id :block/content ?block-text]]
@conn)
;; Returns every value for `:block/content` in the db
(defn content-find
[id-passed]
(ds/q '[:find ?block-text
:where
[?id :block/id ?id-passed]
[?id :block/content ?block-text]]
@conn))
(content-find "l_63xa4m1")
EDIT: Solved over here
In your defn
version you are using the query clause [?id :block/id ?id-passed]
. This doesn't actually use the id-passed
parameter you passed to the function.
I'm not sure how to pass parameters correctly. I believe there is an :in
clause or so?