标签: orientdb

关闭连接时为什么会抛出异常?

我想使用orientdb.样本非常简单:

package models;

import java.util.List;

import com.orientechnologies.orient.core.db.object.ODatabaseObjectPool;
import com.orientechnologies.orient.core.db.object.ODatabaseObjectTx;
import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;

public class User {

    public String name;

    public static void main(String[] args) {
        String uri = "local:c:\\orientdb";

        ODatabaseObjectTx db = ODatabaseObjectPool.global().acquire(uri, "admin", "admin");
        db.getEntityManager().registerEntityClass(User.class);

        User user = new User();
        user.name = "aaa";
        db.save(user);

        List<?> list = db.query(new OSQLSynchQuery<Long>("select count(*) from User"));
        System.out.println(list);
        db.commit();
        db.close(); // ****** throws exception
    }
}
Run Code Online (Sandbox Code Playgroud)

但最后一行db.close()会引发异常:

Exception in thread "main" com.orientechnologies.common.concur.lock.OLockException: Can't release a database URL not acquired before. URL: …
Run Code Online (Sandbox Code Playgroud)

java orientdb

1
推荐指数
1
解决办法
556
查看次数

如何在没有特定属性的情况下查询orientdb文档

我想查询具有特定属性的文档.

我尝试了以下方法:

select * from Foo where not bar is null
Run Code Online (Sandbox Code Playgroud)

但即使他们没有这个属性,这也会将文件返回给我.即使它会起作用,如果存在以null作为值的属性,也会产生错误的结果(不知道orientdb是这样工作的).

有没有办法通过sql检查属性的存在?

orientdb

1
推荐指数
1
解决办法
847
查看次数

如何在MEAN堆栈中使用orientDB

我正在研究平均堆栈.我想使用orientdb而不是mongodb.我只想知道如何用orientDB替换mongodb.或者如何自定义mongoose以便我可以使用orientDB.提前致谢.

mean mongoose node.js orientdb mean-stack

1
推荐指数
1
解决办法
760
查看次数

在OrientDB javascript函数中执行命令后摆脱

在OrientDB的函数中对非事务图数据库执行命令后,我想获得一个新创建的记录ID.例如,

var gdb = orient.getGraphNoTx();

var v = gdb.command("sql", "create vertex TestV set time = ?, note = ?", [(new Date().getTime()), 'note']);

//how do i refer to v.rid after creation?

return true;
Run Code Online (Sandbox Code Playgroud)

我试着像所有不同的选项,v.rid,v['@rid'],v.field('rid'),等我什至不知道从返回什么类型的对象gdb.command().

到目前为止我所知道的是返回值v的类型是object.v.toString()虽然没有提供任何有价值的见解.

有任何想法吗?

javascript orientdb

1
推荐指数
1
解决办法
1294
查看次数

如何在OrientDB中按边数计数顶点

我想这样做,但它不起作用:

select * FROM Users ORDER BY in.size() 
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

select * from Users ORDER BY in[label='connection'].size()
select * from Users ORDER BY inE['connection'].size()
Run Code Online (Sandbox Code Playgroud)

它只返回所有V但未排序

sql graph-databases orientdb

1
推荐指数
1
解决办法
2548
查看次数

Orient DB - 使用密码创建orient数据库并检查是否有可用的JAVA

我看到我们可以使用以下方法创建orient db:

ODatabaseDocumentTx db2 = new ODatabaseDocumentTx ( "local:C:/temp/db/scratchpad" ).create();
Run Code Online (Sandbox Code Playgroud)

但是如何使用REMOTE类型的密码创建orientDB数据库.这是否会检查数据库是否存在并说出来.或者,如果发现它会覆盖?

java remote-access orientdb

1
推荐指数
1
解决办法
1238
查看次数

方向明显不正确

我有以下输出

orientdb {db=dict}> select count(distinct(pos)) from Synset;

----+------+-----
#   |@CLASS|count
----+------+-----
0   |null  |4    
----+------+-----

1 item(s) found. Query executed in 2.514 sec(s).
orientdb {db=dict}> select distinct(pos) from Synset;       

----+------+--------
#   |@CLASS|distinct
----+------+--------
0   |null  |n       
----+------+--------

1 item(s) found. Query executed in 0.012 sec(s).
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?(不同值的计数与该值的选择不匹配。实际上db中有4个不同值)

更新[WTF]

orientdb {db=dict}> select * from (select distinct(pos) from Synset)

----+------+--------
#   |@CLASS|distinct
----+------+--------
0   |null  |n       
1   |null  |v       
2   |null  |a       
3   |null  |r       
----+------+--------

4 item(s) found. Query executed in 2.722 …
Run Code Online (Sandbox Code Playgroud)

sql nosql graph-databases orientdb

1
推荐指数
1
解决办法
311
查看次数

OrientDB时间跨度搜索查询

OrientDB中,我使用此用例设置了时间序列.但是,我没有将我的Vertex作为嵌入列表添加到相应的小时,而是选择创建从小时到时间相关的Vertex的边缘.

为了论证,可以说每个小时最多有60个时间,Vertex每个时间由一个时间戳标识.这意味着我可以执行以下查询以获取特定的所需顶点:

SELECT FROM ( SELECT expand( month[5].day[12].hour[0].out() ) FROM Year WHERE year = 2015) WHERE timestamp = 1434146922
Run Code Online (Sandbox Code Playgroud)

我可以从用例中看到,我可以UNION用来一次获得几个指定的时间分支.

SELECT expand( records ) FROM (
  SELECT union( month[3].day[20].hour[10].out(), month[3].day[20].hour[11].out() ) AS records
  FROM Year WHERE year = 2015
)
Run Code Online (Sandbox Code Playgroud)

如果你只有少量的分支,这可以正常工作,但如果你想获得给定时间跨度的所有记录,它就不能很好地工作.假设你想获得所有记录;

month[3].day[20].hour[11] -> month[3].day[29].hour[23]
Run Code Online (Sandbox Code Playgroud)

我可以遍历时间跨度并创建一个巨大的联合查询,但在某些时候我猜测查询会太长,我的猜测是它不会非常有效.我还可以完全绕过时间分支并根据时间戳直接查询向量.

SELECT FROM Sector WHERE timestamp BETWEEN 1406588622 AND 1406588624
Run Code Online (Sandbox Code Playgroud)

问题是你失去了时间分支所获得的所有效率.

sql select orientdb

1
推荐指数
1
解决办法
344
查看次数

如何在PHP页面上从orientdb访问数据?

我已经从https://github.com/orientechnologies/PhpOrient安装了OrientDb PHP官方驱动程序.

现在,在PHP页面中,我只希望它使用print_r()函数仅显示'user'集合的属性值,例如user_id,username,email_id,mobile等.

 $client = new PhpOrient( 'localhost', 2424);
 $client->username = 'root';
Run Code Online (Sandbox Code Playgroud)

显示输出的代码如下::

$client->password = 'root';
$client->connect(); 
$ClusterMap = $client->dbOpen( 'krshop', 'root', 'root' ); 
$data = $client->query( 'select from user limit 10' ); 
echo "<pre>";print_r($data);
Run Code Online (Sandbox Code Playgroud)

使用orientdb的php的用户集合数据

php database codeigniter orientdb

1
推荐指数
1
解决办法
426
查看次数

OrientDB - 无法在我的数据库中访问有关架构故障的信息

我有一个名为superclass的类BaseData和一个派生类MyData.

一开始,我在MyData课堂上添加了一个名为的属性period.

在此之后,通过工作室,我添加了我BaseData的名字相同的属性period.

在这之后.我重新启动了我的服务器,到那时我无法使用此错误访问我的Orient DB服务器:

错误:com.orientechnologies.common.exception.OException:创建共享资源时出错

错误:com.orientechnologies.orient.core.exception.OSchemaException:由于参数冲突,无法添加基类'MyData':period(type = INTEGER)vs period(type = INTEGER)

我试图通过控制台访问,但我有相同的结果,所以我不能删除属性,我不能使用我的数据库.

orientdb orientdb-2.1

1
推荐指数
1
解决办法
63
查看次数