0

データ モデルでは、ドメイン エンティティ値の一部を外部ノードに外部化しました。サービス オブジェクトのモデルは次のようになります。

ref=node(0), 
ref<-[:SERVICE]-subRefNode<-[:SERVICE]-aService-[:HAS_PROPERTY_VALUE]->propValueNode-[:IS_OF_TYPE]->propDefType,
ref<-[:SERVICE]-subRefNode-[:HAS_PROPERTY]->propDefType

ノード subRefNode は、すべてのサービスとの関係を保持します。サービスの可能なすべてのプロパティは、ref<-[:SERVICE]-subRefNode-[:HAS_PROPERTY]->propDefType によって定義されます。したがって、特定のノードには特定のプロパティ (コメントなど) の propValueNode がまだなく、他のノードにはあるが空である可能性があります (ユーザーがコメントを入力してからクリアした可能性があります)。

したがって、私の質問は、空の propValueNode.value を持つノードと、まだ propertyValueNode を持たないノードを取得するにはどうすればよいですか? みたいなことを考えた...

START ref=node(0) MATCH ref<-[:SERVICE]-subRef, aService-[pvRel?:HAS_PROPERTY_VALUE]->propValueNode-[pdRel:IS_OF_TYPE]->propDef<-[:HAS_PROPERTY]-subRef<-[:SERVICE]-aService WHERE (pvRel IS NOT NULL AND propDef.name = 'comment' AND propValueNode.value=~"^$") OR (pvRel IS NULL AND pdRel IS NULL AND propDef.name="comment") RETURN DISTINCT aService.debug

http://console.neo4j.org/r/7zeoay

...しかし、これは propValueNode のないものを見逃しています。どんなヒントでも大歓迎です!

よろしく、アンディ

http://console.neo4j.org/r/7zeoayが有効でなくなった場合、最初のグラフのセットアップは次のとおりです。

start _0 = node(0) with _0 
create
(_1  {type:"SubReferenceNode", name:"SubRef"}),

(_2  {type:"Service", debug:"S0 empty value"}),
(_3  {type:"Service", debug:"S1 missing value node"}),
(_4  {type:"Service", debug:"S2 with value"}),

(_5  {type:"PropertyDefintion", name:"comment"}),
(_6  {type:"PropertyDefintion", name:"name"}),

(_7  {type:"PropertyValue", value:"S0 empty value"}),
(_8  {type:"PropertyValue", value:"S1 missing value node"}),
(_9 {type:"PropertyValue", value:"S2 with value"}),

(_10  {type:"PropertyValue", value:""}),
(_11 {type:"PropertyValue", value:"This is a comment"}),

_0<-[:SERVICE]-_1,
_1<-[:SERVICE]-_2,
_1<-[:SERVICE]-_3,
_1<-[:SERVICE]-_4,

_1-[:HAS_PROPERTY]->_5,
_1-[:HAS_PROPERTY]->_6,

_2-[:HAS_PROPERTY_VALUE]->_7,
_7-[:IS_OF_TYPE]->_6,
_3-[:HAS_PROPERTY_VALUE]->_8,
_8-[:IS_OF_TYPE]->_6,
_4-[:HAS_PROPERTY_VALUE]->_9,
_9-[:IS_OF_TYPE]->_6,

_2-[:HAS_PROPERTY_VALUE]->_10,
_10-[:IS_OF_TYPE]->_5,
_4-[:HAS_PROPERTY_VALUE]->_11,
_11-[:IS_OF_TYPE]->_5    
4

1 に答える 1