问题标签 [datomic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - Datomic 与 Neo4j 相比如何?
我正在考虑将 Neo4j 集成到我正在构建的 Clojure 系统中。我被问到的第一个问题是为什么我不使用 Datomic。有人对此有很好的答案吗?我听说过并看过有关 Datomic 的视频,但我对图形数据库的了解还不够,无法了解 Neo4j 和 Datomic 之间的区别,它对我有什么影响?
postgresql - 存储后端如何影响 Datomic?
我应该如何选择 Datomic 的后端存储服务?
选择 DynamoDB 而不是 Postgres 是偏好问题,还是每个选项都有不同的权衡?如果是这样,它们是什么?
datomic - Datomic:你能说出它处理时间的能力有哪些用例
查看过去数据的能力似乎很有用,但我不清楚如何实际使用它。受益于此功能的领域有哪些?也许有一些众所周知的“时间性”用例?
macros - 以编程方式生成 Datomic 查询
应用
我想以编程方式生成以下形式的查询。
这些是收集一组预定义属性的相当标准的查询。
当前解决方案
我能做的最好的就是使用:in
如下
但这为我提供了n
每个实体的一组事实。真的我想收到一组长度向量,n+1
其中n
是指定属性的数量。我还希望元素的顺序能够反映给定属性的顺序。
程序化生成
因为 Datomic 查询是数据结构,所以我应该能够以编程方式生成它们。我发现这很困难有几个原因,这两个原因都源于我对宏的不熟悉
我怎样才能创建像
?val1
. 我可以映射?
到一堆生成的字符串吗?(map ? value-strings)
领导
'
吓到我了。这不会阻止我的自动化代码运行,直到?x
处理完元素之后?
或者,有没有更惯用的解决方案?
java - 如何在 Datomic 查询中使用 /?
这个查询
只返回四舍五入(到小数点后 0 位)的值?af
,所以我不能添加 sth。像
到 :where 子句。
我已经尝试在查询中强制转换为各种类型,例如
但这只会影响结果类型,而不会删除舍入。
如果你知道一些事情并且有经验,那么我在 Datomic 方面还有很多(尤其是与类型相关的)问题。但是我还没有找到解决这个除法查询问题的解决方法(除了查询后除法),我真的希望它不是由于 Datomic 的早期开发阶段造成的。我猜是因为 Datomic 不支持 Ratio 类型,它们是四舍五入的,但小数点后几位会非常好。
我正在将 Datomic 与 Clojure 一起使用。
编辑我找到了一个解决方法,但是我仍然想知道为什么它是必要的。
解决方法:
采用
/li>clojure.core//
但我当然想知道哪个 / 被调用(在没有完全限定的命名空间的情况下调用)以及在哪里可以找到它的文档,以便我可以了解其他运算符的其他可能问题。
EDIT2:通过设计一个除以零的查询来调用异常,我发现clojure.lang.Numbers/quotient
调用了静态方法。我怎么会知道这个?看起来 Datomic 不是开源的,至少我在 jar 文件中找不到源代码。使用clojure.tools.trace
on datomic.datalog
,我发现调用是通过解析/
from发生的datomic.extensions
。在datomic.extions
中,/
定义为clojure.core/quot
,它调用clojure.lang.Numbers/quotient
。
就我而言,所有这些都没有记录。
clojure - 我应该在 Datomic 上拥有多少个交易者?
或者为什么我想要的不仅仅是第一个交易者和第二个交易者?
clojure - 简单(st)Datomic 测试程序在退出时挂起
以下程序从 überjar 运行时,仅在使用内存中 Datomic 数据库时才退出;当连接到 Datomic 服务器时,它会无限期挂起而不是退出 JVM:
运行为:
输出:
并挂起。仅当程序启动时数据库不存在时才会挂起。
有谁知道为什么,或者如何解决?这适用于datomic-free-0.8.4020.26
和datomic-free-0.8.3941
。
更新——上述程序确实终止了,但需要很长时间(> 1 分钟)。我想知道为什么。
clojure - 参考和速度
?cat
在给定的意义上,引用是双向的?person
吗[?person :pet ?cat]
?
或者我应该在另一边手动构建一个引用(例如为宠物设置一个属性)以防止在所有具有s:owner
的 s 中进行线性搜索??person
:pet
clojure - 如何列出所有用户创建的属性?
我尝试使用下面的代码查找所有用户创建的属性,它返回许多其他默认属性,例如db/unique
和fressian/tag
.
我想得到一个没有它们的集合,所以我想知道是否有比通过前缀过滤属性更好的方法来获取它。
谢谢
或者