Neo4J
CREATE (:Scope:Global {} ), (:Scope {account: "greg"});
MATCH (s:Scope:Global) MERGE (a:Attribute {ns: "vehicle", key: "rego", value: "KSQ738"})-[:Scoped]->(s) ON CREATE SET a.created = timestamp();
MATCH (s:Scope:Global) MERGE (a:Attribute {ns: "vehicle", key: "rego", value: "TST123"})-[:Scoped]->(s) ON CREATE SET a.created = timestamp();
MATCH (s:Scope:Global) MERGE (a:Attribute {ns: "vehicle", key: "vin", value: "123VIN4567"})-[:Scoped]->(s) ON CREATE SET a.created = timestamp();
MATCH (s:Scope:Global) MERGE (a:Attribute {ns: "vehicle", key: "vin", value: "9876NIV543"})-[:Scoped]->(s) ON CREATE SET a.created = timestamp();
MATCH (s:Scope {account: "greg"}) MERGE (a:Attribute {ns: "vehicle", key: "fleetNumber", value: "TEST"})-[:Scoped]->(s) ON CREATE SET a.created = timestamp();
MATCH (s:Scope {account: "greg"}) MERGE (a:Attribute {ns: "vehicle", key: "foo", value: "BAR"})-[:Scoped]->(s) ON CREATE SET a.created = timestamp();
MATCH (vin:Attribute {ns: "vehicle", key: "vin", value: "123VIN4567"}) MERGE (vin)<-[:ID]-(:Thing);
MATCH (vin:Attribute {ns: "vehicle", key: "vin", value: "123VIN4567"}) MATCH (rego:Attribute {ns: "vehicle", key: "rego", value: "KSQ738"}) MERGE (vin)<-[:Rel]-(rego);
MATCH (t:Thing)-[:ID]->(id:Attribute)-[:Scoped]->(ids:Scope) MATCH (id)-[:Rel*]-(a:Attribute) OPTIONAL MATCH (a)-[:Scoped]->(s:Scope) WHERE s:Global RETURN t,id,a,s;
MATCH (a:Attribute)-[:Scoped]->(s:Scope) WHERE s:Global OR s.account="greg" RETURN a;
MATCH (t:Thing)-[:ID]->(id:Attribute)-[:Scoped]->(ids:Scope) WHERE ids:Global OR ids.account="greg" MATCH (id)-[:Rel*]-(a:Attribute) MATCH (a)-[:Scoped]->(s:Scope) WHERE s:Global OR s.account="greg" RETURN t,id,a,s;
MATCH (a:Attribute)-[:Scoped]->(s:Scope) RETURN a,s;
MATCH (n) OPTIONAL MATCH (n)-[r]->() DELETE n,r;
MATCH (n) OPTIONAL MATCH (n)-[r]->() RETURN n,r;Last updated
Was this helpful?