在轻量级模式下,2个顶点连接两次,边缘相同

时间:2015-08-12 15:25:52

标签: orientdb graph-databases nosql

关于轻量级边缘的orientdb documentation说:

  

两个顶点通过最多1个边连接,因此如果两个顶点之间已有一条边,并且在相同顶点之间创建新边,则第二条边将是常规的

查看以下脚本:

drop database plocal:../databases/test-lightweight admin admin;

create database plocal:../databases/test-lightweight  admin admin;
connect plocal:../databases/test-lightweight admin admin;

alter database custom useLightweightEdges=true;

// Vertices
CREATE class    Driver extends V;
CREATE PROPERTY Driver.name    STRING;

// Edges
CREATE class    Knows extends E;
CREATE PROPERTY Knows.in   LINK Driver  MANDATORY=true;
CREATE PROPERTY Knows.out  LINK Driver  MANDATORY=true;

// DATA
CREATE VERTEX Driver SET name = 'Jochen';
CREATE VERTEX Driver SET name = 'Ronnie';

// Jochen and Ronnie are very good friends
CREATE EDGE Knows FROM (SELECT FROM Driver WHERE name = 'Jochen') to (SELECT FROM Driver WHERE name = 'Ronnie');
CREATE EDGE Knows FROM (SELECT FROM Driver WHERE name = 'Jochen') to (SELECT FROM Driver WHERE name = 'Ronnie');

SELECT expand(out()) FROM (SELECT FROM Driver WHERE name = 'Jochen'); // 2 times Ronnie
SELECT count(*) FROM Knows; // 0

我希望最后一次计数返回1,但它会返回0.

当我执行相同的脚本但禁用轻量级模式时,结果为2(正如预期的那样)。

0 个答案:

没有答案