2013-12-08 8 views
29

के साथ मौजूदा नोड्स में रिश्ते जोड़ना मैं पहली बार नियो 4j कोशिश कर रहा हूं। मैं 2.0-आरसी 1 समुदाय संस्करण का उपयोग कर रहा हूं।साइफर

मैं कुछ नोड्स बना लिया है:

MERGE (u:User{username:'admin',password:'admin'}) 
MERGE (r1:Role{name:'ROLE_ADMIN'}) 
MERGE (r2:Role{name:'ROLE_WEB_USER'}) 
MERGE (r3:Role{name:'ROLE_REST_USER'}) 

और अब मैं नोड्स के बीच रिश्तों को जोड़ना चाहते हैं। हालांकि, मैं उपरोक्त स्क्रिप्ट के साथ बनाए गए मौजूदा डेटाबेस को साफ़ करना चाहता हूं, बयान जोड़ें और इसे फिर से चलाएं। मैं मौजूदा नोड्स में संबंध जोड़ना चाहता हूं। गूगल मुझे मदद की इस लगता है:

START n=node(*), m=node(*) 
where has(n.username) and has(m.name) and n.username = 'admin' 
and m.name = 'ROLE_WEB_USER' 
create (n)-[:HAS_ROLE]->(m) 

कौन सा ठीक काम करता है (भले ही मैं सभी वाक्य रचना समझ में नहीं आता)। हालांकि, मुझे पता है कि यह उपयोगकर्ता नाम संपत्ति के साथ कोई नोड पाता है और नाम संपत्ति के साथ कोई नोड पाता है, यह जांचने के लिए कि इसका सही प्रकार का नोड है।

लेबल का उपयोग करके मैं वही कैसे कर सकता हूं?

उत्तर

49

Neo4j 2.0 में आप अपने लेबल और गुण आप देखने के लिए उपयोग के लिए स्कीमा अनुक्रमणिका बना सकते हैं:

CREATE INDEX ON :User(username) 
CREATE INDEX ON :Role(name) 

रिश्ते बनाने के लिए आप उपयोग कर सकते हैं:

MATCH (u:User {username:'admin'}), (r:Role {name:'ROLE_WEB_USER'}) 
CREATE (u)-[:HAS_ROLE]->(r) 

MATCH एक सूचकांक का उपयोग करेगा अगर संभव हो तो। यदि कोई अनुक्रमणिका नहीं है, तो यह लेबल को ले जाने वाले सभी नोड्स को देखेगा और देखें कि संपत्ति मेल खाती है या नहीं।

एनबी। उपरोक्त वाक्यविन्यास केवल Neo4j 2.0.0-RC1 और ऊपर के साथ काम करेगा।

+4

आर दूसरे नोड के लिए एक चर नाम का सबसे अच्छा विकल्प नहीं है, अक्सर आर को रिश्ते के लिए परिवर्तनीय नाम के रूप में नामित किया जाता है। –

संबंधित मुद्दे