मान लें कि मेरे पास Neo4j में दो लेबल ए, बी हैं। क्या निम्न की तरह कुछ बनाना संभव है?

बाधा उत्पन्न करें जहाँ A.property1 और B.property2 अद्वितीय है।

1
Sujith kandamuri 8 अप्रैल 2020, 08:31

2 जवाब

सबसे बढ़िया उत्तर

नहीं, बाधाएं केवल एक लेबल पर हैं।

यदि आप कुछ नया लेबल बनाने का निर्णय लेते हैं, उदाहरण के लिए, A_B, तो आप दावा कर सकते हैं कि इसकी संपत्ति 1, संपत्ति 2 गुण नोड कुंजी बाधा, हालांकि यह केवल एक उद्यम सुविधा है।

0
InverseFalcon 8 अप्रैल 2020, 09:06

यद्यपि कई नोड्स तक फैली एक विशिष्टता बाधा बनाने का कोई तरीका नहीं है, यहां एक साइफर क्वेरी है जो एक तरह से दिखाती है कि आप नोड्स में से एक बनाने से पहले 2 नोड्स में एक विशिष्टता परीक्षण कर सकते हैं (यदि उपयुक्त हो):

OPTIONAL MATCH (a:A), (b:B)
WHERE a.property1 = $p1 AND b.property1 = $p2
FOREACH(x IN CASE WHEN a IS NULL THEN [1] END |
  MERGE (a:A {property1: $p1}))

क्वेरी मानती है कि p1 और p2 को पैरामीटर. यदि या तो a.property1 = $p1 या b.property1 = $p2 झूठे हैं, तो a WHERE क्लॉज के बाद शून्य हो जाएगा। इस प्रकार, यदि बहु-नोड विशिष्टता परीक्षण विफल हो जाता है, तो FOREACH क्लॉज केवल उन नोड्स में से एक (यदि आवश्यक हो, MERGE क्लॉज के माध्यम से) बनाएगा। MERGE का उपयोग उस नोड को बनाने से बचने के लिए किया जाता है यदि यह पहले से मौजूद है।

0
cybersam 8 अप्रैल 2020, 11:33