clojure - 在函数中包装 Datascript 查询?
问题描述
使用 Datascript 遇到一个看似奇怪的问题。出于某种原因,当我在没有将其包装在函数中的情况下运行此查询时,一切正常。但是一旦我将它包装在一个函数中,它就会为数据库中的每个实体返回 :block/content 的值。我很困惑,因为过去我在包装其他 Datascript 查询方面没有遇到任何问题。有没有比我更有经验的 Datascript 看到任何问题?
;; 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")
编辑:在这里解决
解决方案
在您的defn
版本中,您使用的是查询子句[?id :block/id ?id-passed]
。这实际上并不使用id-passed
您传递给函数的参数。
我不确定如何正确传递参数。我相信有一个:in
条款左右?
推荐阅读
- python - gcloud.app.deploy 错误响应:[13] 无法创建云构建:无效存储桶 - 如何修复?
- flutter - 如何根据firestore中的当前用户详细信息过滤数据
- python - 如何使用随机模块生成满足条件的变量列表
- node.js - react-native run-android 时出现错误“应用安装调试失败”
- nginx - 如何将 RTMP nginx 直播从 Flv 转换为 mp4 文件?
- javascript - VueJS的for循环?
- node.js - 在 tizen 上使用节点 js 创建 Web 应用程序
- python - 在 python 中处理 .csv
- php - 在 PHP 中创建动态产品页面
- swift - SWIFTUI 警告 imagePickerController 几乎匹配 - 仅在现有的 swift 项目文件中发生