我希望在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;
我尝试了所有不同的选项,例如v.rid
,v['@rid']
,v.field('rid')
等。我甚至不确定从gdb.command()
返回什么类型的对象。
到目前为止我所知道的是返回值v的类型是object。 v.toString()虽然没有提供任何有价值的见解。
有什么想法吗?
答案 0 :(得分:5)
var gdb = orient.getGraphNoTx();
var v = gdb.command("sql", "create vertex TestV set time = ?, note = ?", [(new Date().getTime()), 'note']);
print(v.getRecord().field('@rid'));
return true;
答案 1 :(得分:0)
对于那些希望将@rid
作为查询字符串
var g=orient.getGraph();
var result=g.command('sql',"SELECT FROM something WHERE something=something");
var index=0;
var rid=result[index].getId().toString();
//rid is now string like #12:3456
// you can iterate through result to get all @rid's