Neo4j查询多个标签和缺少关联

时间:2014-04-21 03:14:08

标签: neo4j cypher

我不能声称我已经不再是cypher了,因为我现在已经玩了几个月了,但仍然在努力解决某些类型的问题。我想知道是否有人可以帮我解决这些问题。

假设我的订单数据包含以下多标签节点:

(o:Order:Active:New)(o:Order:Active:InProcess)(o:Order:Active:Approved)(o:Order:Closed)

并且关系为

(c:Customer)-[:PLACED_ORDER]-(o)-[:APPROVED_BY]->(e:Employee), (o)-[:HAS_CONSTRAINTS]->(dc:DateConstraint)

假设所有这些节点都有InternalId属性。

  1. 如何找到Active and NewActive and Inprocess但不是Active and Approved的客户的所有订单。基本上是要查询多个标签。
  2. 如何查找其他人批准的所有订单,即其他员工批准的订单,而不是我所拥有的员工的InternalId。
  3. 如何查询有约束的所有订单,即缺少HAS_CONSTRAINTS关系
  4. 此致 基兰

1 个答案:

答案 0 :(得分:4)

  1. MATCH(o:Order)WHERE o:Active AND(o:New OR o:InProcess)RETURN o;
  2. MATCH(o:Order) - [:APPROVED_BY] - >(e)WHERE NOT E.InternalId = {InternalId} RETURN o;
  3. MATCH(o:Order)WHERE NOT(o) - [:HAS_CONSTRAINTS] - >()RETURN o;
  4. 在#2中,我假设你正在传递一个" InternalId"参数。