问题标签 [orientdb]

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.

0 投票
3 回答
1657 浏览

java - 在 OrientDB 的 shortestPath() 中获取访问的边

我是 OrientDB 的新手,我想使用新的 shortestPath() 方法来获取两个顶点之间的边。

我要做的是:

而我只能得到的是[#-2:1{shortestpath:[#8:1, #8:3]} v0]

所以,我想知道如何从这个输出或我没有得到的输出中提取边缘(好吧,在这种情况下只有一个边缘,因为这两个顶点是直接连接的)asString()

0 投票
1 回答
593 浏览

sql - OrientDB:eval() 函数中的 AND 运算符

我们有一个非常复杂的查询,我们正在使用 eval() 函数来评估一些数据。

但似乎 AND 运算符在 eval() 中没有正确处理。

例如:

if(eval('#20:34 IN out[@class='attempts'].in.@rid AND \'b\' IN out[@class='attempts'].choice'), true, false) as attempt_b

在该示例中,我们期望仅获取#20:34带有“选择”属性“b”的@rid 和“选择”属性的数据,该属性将返回 true

“out”字段是我们的 SELECT 查询的 $current.@rid 。

这是样本数据:

前任:if(eval('#20:34 IN out[@class='attempts'].in.@rid AND \'" + choice + "\' IN out[@class='attempts'].choice'), true, false) as attempt_choice

1.)$current.@rid = #14:3 and choice is 'a'

2.)$current.@rid = #14:3 and choice is 'b'

3.)$current.@rid = #14:3 and choice is 'c'

4.)$current.@rid = #14:3 and choice is 'd'

我不知道这只是我们的查询问题还是在orientdb中。如果有人能带领我实现我们想要实现的目标,那将是一个很大的帮助。

0 投票
2 回答
192 浏览

clojure - 排队方法调用,以便它们由 Clojure 中的单个线程执行

我正在 Clojure 中围绕 OrientDB 构建一个包装器。OrientDB 的最大限制之一(恕我直言)ODatabaseDocumentTx是不是线程安全的,但是这个东西的生命周期.open()应该.close()代表单个事务,有效地强制事务发生是单个线程。事实上,这些混合数据库/事务对象的线程本地引用是默认提供的。但是,如果我想登录与保持“真实”状态相同的线程怎么办?如果我遇到错误,日志条目也会回滚!仅这个用例就让我远离了几乎所有 DBMS,因为大多数 DBMS 不允许命名事务范围管理。/肥皂盒

无论如何,OrientDB 就是这样,对我来说不会改变。我正在使用 Clojure,我想要一种优雅的方式来构造一个with-tx宏,以便对正文中的所有命令式数据库调用with-tx进行序列化。

with-tx显然,我可以通过在生成的主体的顶层创建一个哨兵并将每个表单解构到最低层并将它们包装在一个同步块中来强制它。这太可怕了,我不确定它会如何与pmap.

我可以在宏主体中搜索对ODatabaseDocumentTx对象的调用并将它们包装在同步块中。

我想我可以用代理创建某种调度系统。

或者我可以使用同步方法调用子类化 ODatabaseDocumentTx。

我正在挠头,试图想出其他方法。想法?一般来说,代理方法似乎更有吸引力,因为如果一个代码块散布有数据库方法调用,我宁愿预先完成所有计算,对调用进行排队,最后只向数据库发送一大堆东西。然而,这假设计算不需要确保读取的一致性。身份证。

0 投票
5 回答
2567 浏览

graph - 如何在 Orient-DB 中创建关系?

我在 Orient-DB 中遇到了关系问题。

我的问题是我不知道如何在 orient-DB 中创建关系?

我阅读了文档,看到它有命令 CREATE LINK。但我不知道当我插入新记录并且不运行命令 CREATE LINK 时它如何创建链接。

0 投票
1 回答
488 浏览

gremlin - Gremlin-Traversing 查找与特定顶点无关的所有顶点

这是场景:我在 orient-db 中有许多用户顶点。我想检索不是特定用户的朋友的所有用户,其中朋友是优势。我需要 gremlin 命令。任何人都可以帮助我吗?谢谢你。迭戈

0 投票
1 回答
242 浏览

java - 通过 OrientDB 中的“链”导航

背景:

我是 OrientDB 的新手,我会用 Java 测试几天,看看它是否是我需要的数据库。

语境:

假设您有类似于 LinkedList 的东西,但由顶点和 (O) 边 (-) 组成:

O - O - O - O - O - O - O - O

每个顶点都有一个名为“name”的字段和一个标记为“bestFriend”的边。

问题:

我需要打印“链”的所有顶点的名称。是否有任何方法或 API 方法可以快速浏览整个列表,复杂度 < O(n)?

谢谢

0 投票
1 回答
439 浏览

indexing - OrientDB 中的二级索引

有没有办法在 OrientDB 中指定二级索引?

我需要具有所有具有指定字段(例如indexable=true)的文档引用的东西。

0 投票
0 回答
140 浏览

select - 在 Orientdb 中选择更多类似的条件

我有一个表是用户。此表有 5 个用户,其 id 为 1 、 2 、 3 、 4 和 5。

现在,我想选择 id 为 1、3 和 5 的用户。

我写道:select from user WHERE id = '1' or id= '3' or id ='5'。没关系。

但是如果我有更多的用户,我就不能写这样的了。因为它很长。

我不想用for来选择它。

我尝试使用IN,例如 mysql 。但它注意到错误。

这种情况谁能帮帮我?

0 投票
0 回答
1823 浏览

java - OrientDB:使用 Java 创建索引

我在使用 jcouchdb 索引表/集合时遇到问题。实际上它看起来很简单,但经过一些研究,我不知道问题出在哪里,或者我只是瞎了眼。我跟着官方的测试课:

https://code.google.com/p/orient/source/browse/trunk/tests/src/test/java/com/orientechnologies/orient/test/database/auto/ClassIndexTest.java

看看下面的代码:

我总是得到以下异常:

有谁知道这个的解决方案。我还尝试关闭和打开数据库,在之前保存模式并使用不同的索引类型,但没有任何积极的结果。

第二个问题:是否有必要定义模式来索引集合中的列/属性,还是有其他方法?

0 投票
1 回答
1846 浏览

sql - 在 OrientDB 的字符串嵌入集/列表中插入数据

我有一个带有EMBEDDEDSET/EMBEDDEDLIST字段的类的 OrientDB 数据库,每次更改某些内容(例如记录日志)时,我都需要更新该字段。

我正在使用普通的insert

通过这样做,新值将替换旧值,我需要将其添加到列表中,但我无法在文档中找到如何执行此操作。

现在我正在取出列表并添加新值并替换旧列表(首先是 aselect然后是update),但我不喜欢它,我需要用尽可能少的查询来完成它。

顺便说一句,我使用的是 Java(没有 JDBC)。

[编辑]

正如我在下面的答案中所建议的那样:

它在 OrientDB Studio 中运行良好,但是当我从我的程序中调用它时它什么也没做。

这是代码(西班牙语):

我想要一个单行解决方案,但只要它不是一个选择它就很好。

这是命令方法:

第一个命令正确地完成了工作,但另一个命令我什么也没得到,甚至没有异常。

我的方法有什么问题?这可能是一个错误吗?

OrientDB 1.3.0 - Java 1.7.0 - Windows 7 64