簡體   English   中英

Neo4j Cypher模式理解和條件

[英]Neo4j Cypher pattern comprehension and conditions

在我的Cypher查詢中,我具有以下模式理解:

[ (parentD)<-[:DEFINED_BY]-(ch1:Characteristic)<-[:SET_ON]-(v1:Value)-[:SET_FOR]->(childD) | 
  {characteristicId: id(ch1),  value: v1.value, valueType: ch1.valueType, visualMode: ch1.visualMode} ] AS valuedCharacteristics

我已將parentCharacteristic添加到我的SDN 4 Characteristic實體中:

@NodeEntity
public class Characteristic extends Votable {

    private final static String DEPENDS_ON = "DEPENDS_ON";

    @Relationship(type = DEPENDS_ON, direction = Relationship.OUTGOING)
    private Characteristic parentCharacteristic;

...

}

現在,我需要擴展我的模式理解並添加一個條件,以便返回與以前相同的Characteristic集,但那些具有parentCharacteristic != NULL人和模式理解還應該返回在{includeCharacteristicIds}集合中具有ID Characteristic , ll提供給該查詢作為參數。

為了避免沒有子Characteristic所有Characteristic ,我添加了以下條件:

WHERE NOT ((ch1)<-[:DEPENDS_ON]-())

因此,完整的模式理解現在看起來像:

[ (parentD)<-[:DEFINED_BY]-(ch1:Characteristic)<-[:SET_ON]-(v1:Value)-[:SET_FOR]->(childD) WHERE NOT ((ch1)<-[:DEPENDS_ON]-()) | 
  {characteristicId: id(ch1),  value: v1.value, valueType: ch1.valueType, visualMode: ch1.visualMode} ] AS valuedCharacteristics

但是除了此Characteristic列表之外,還如何返回在{includeCharacteristicIds}集合中具有ID Characteristic

請幫助擴展此查詢。

您可以將兩個條件與這樣的OR語句組合在一起...

WHERE NOT ((ch1)<-[:DEPENDS_ON]-()) OR id(ch1) IN myIDs

模式理解中的WHERE就像MATCH條件的WHERE一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM