因此,我不是数据库专家或开发人员,而是网络和系统管理员。我们有一个家伙离开,我正在努力做到这一点。我觉得它应该真的很简单,就像在SQL中一样,所以我一定缺少一些东西。
我正在从datomic控制台运行查询,我只想返回具有相似值的实体。我的大脑等同于在搜索文档等时使用通配符。
有效的示例查询:
[:找到?e :哪里 [?e:project / name“ 3000gtVR4”] ]
因此,当项目名称已知时,此方法非常完美...我得到了我期望的实体ID值。但是,如果我想查看数据库中是否有类似的项目名称,但我不知道它到底是什么... 3000gt *或* VR4或类似的东西在许多程序中都可以工作,但是我找不到与Datomic相似的值
[:找到?e :哪里 [?e:project / name“ 3000gt *”] ]
NoGo ...我已经尝试了大约一百种变体,并且说实话,我正在阅读的许多Datomic东西都超出了我的经验。我觉得这不需要进行大量查询和定义变量等...
您也可以使用Clojure语法进行回复,我也许能够理解它,从而可以通过REPL会话将其粉碎成提交形式,但是请理解,我不在这里。
答案 0 :(得分:0)
Datomic查询是Datalog的扩展形式,其概念与传统SQL不同。
尝试:
[:查找[?e ...] :where [[e:project / name?name] [(重新匹配#“ 3000gt。+”?name)]]
[?e ...]返回实体的集合。
[(重新匹配#“ 3000gt。+”?name)]使用clojure函数作为谓词。 这是一个不错的教程https://docs.datomic.com/on-prem/query.html