티스토리 뷰

AgensGraph

cypher query

whitehorses 2019. 8. 27. 10:48

select
match (v1:person) return v1;
match (v1:person)-[e1:likes]->(v2:person) return v1, e1, v2;

create
create (:person{name:'Edward'})
match (v1:person), (v2:person) where v1.name = 'Edward' and v2.name='jon2' create (v1)-[e1:likes{type:'gae'}]->(v2);

modify
match (e:person) where e.name='jon5' set e.name='jon6', e.age=60;
match (v1:person)-[e1:likes]->(v2:person) where v1.name = 'Edward' and v2.name='jon2' set e1.type='super gae';

delete
match (e:person) where e.name='jon5' delete e;
match (v1:person)-[e1:likes]->(v2:person) where v1.name = 'Edward' and v2.name='jon2' delete e1;

hybrid
select count(*)
from (
match (a:c_system) return a.properties, 123
) a;

query express

select audit_id + 1 as audit_id from audits;
select 42 as audit_id from audits;
select audit_id || ', ' || created_instant as created_instant from audits;
select concat(audit_id, created_instant) as created_instant from audits;
select concat(audit_id, '-', created_instant) as created_instant from audits;

create fdw
CREATE EXTENSION file_fdw;

CREATE SERVER import_server FOREIGN DATA WRAPPER file_fdw;

create foreign table ratings
(
id int4,
document varchar(1000),
label varchar(1000)
)
SERVER import_server
options
(
FORMAT 'csv',
HEADER 'true',
DELIMITER E'\t',
FILENAME '/home/jhkim/dev/research/TM/data/review/nsmc/ratings.txt'
);

create label
CREATE vlabel c_system;
CREATE vlabel c_system disable index;

load function
LOAD FROM public.test_group AS t CREATE (a:c_system=to_jsonb(t)) ;

drop labael
drop vlabel c_system cascade;

print timing
\timing

inherits
create vlabel person;
create elabel knows;
CREATE (:person {name: 'Tom'})-[:knows]->(:person {name: 'Summer'});
CREATE (:person {name: 'Pat'})-[:knows]->(:person {name: 'Nikki'});
CREATE (:person {name: 'Olive'})-[:knows]->(:person {name: 'Todd'});

create vlabel gs_person inherits (person);
create elabel gs_knows inherits (knows);

match (a:gs_person)-[r:gs_knows]->(b:gs_person) return *;
match (a:person)-[r:knows]->(b:person) return *;
match (a:person)-[r:knows]->(b:person)
where a.name = 'Tom_son'
with a
return a;

CREATE (:gs_person {name: 'Tom_son'})-[:gs_knows]->(:gs_person {name: 'Summer_son'});
CREATE (:gs_person {name: 'Pat_son'})-[:gs_knows]->(:gs_person {name: 'Nikki_son'});
CREATE (:gs_person {name: 'Olive_son'})-[:gs_knows]->(:gs_person {name: 'Todd_son'});

match (a:gs_person)-[r:gs_knows]->(b:gs_person) return *;

create vlabel fs_person;
create elabel fs_knows;

CREATE (:fs_person {name: 'Tom_friend'})-[:fs_knows]->(:fs_person {name: 'Summer_friend'});
CREATE (:fs_person {name: 'Pat_friend'})-[:fs_knows]->(:fs_person {name: 'Nikki_friend'});
CREATE (:fs_person {name: 'Olive_friend'})-[:fs_knows]->(:fs_person {name: 'Todd_friend'});

alter vlabel fs_person inherit person;
alter elabel fs_knows inherit knows;

match (a:person)-[r:knows]->(b:person) return *;

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함