मैं एसीएल Graph Operation और Graphs पढ़ रहा हूं, और SQL-Traverse के उपयोग के मामले के लिए कोई ठोस उदाहरण और प्रदर्शन स्पष्टीकरण नहीं मिला है।ArangoDB में, पूछताछ करेगा, फिल्टर के साथ, पड़ोसी से ओ (एन) में किया जाना चाहिए?
उदाहरण के लिए:
अगर मैं एक संग्रह है उपयोगकर्ता, जो संग्रह करने के लिए एक कंपनी संबंध कंपनी
है संग्रह कंपनी को संग्रह स्थान संबंध स्थान है;
संग्रह स्थान या तो एक शहर, देश या क्षेत्र है, और संबंध शहर, देश, क्षेत्र ही करना पड़ता है।
अब, मैं जर्मनी या यूरोपीय संघ में कंपनियों के सभी उपयोगकर्ताओं से पूछताछ करना चाहता हूं।
SELECT from Users where Users.company.location.city.country.name="Germany";
SELECT from Users where Users.company.location.city.parent.name="Germany";
या
SELECT from Users where Users.company.location.city.country.region.name="europe";
SELECT from Users where Users.company.location.city.parent.parent.name="europe";
यह मानते हुए कि Location.name अनुक्रमणित है, मैं ऊपर दो प्रश्न हैं कर सकते हैं हे (एन), साथ n दस्तावेजों की संख्या होने के साथ मार डाला स्थान (ओ (1) ग्राफ ट्रैवर्सल के लिए, ओ (एन) इंडेक्स स्कैनिंग के लिए)?
बेशक, मैं सिर्फ regionName या COUNTRYNAME सीधे कंपनी में बचा सकता है, के रूप में इन शहरों और देशों के विपरीत में ... अन्य स्थानों, शायद नहीं बदलेगा, यूरोपीय संघ में हैं, लेकिन क्या हुआ अगर ... आप जानते हैं कि मेरा क्या मतलब है (मजाक कर रहा है, अगर मेरे पास अन्य उपयोग के मामले हैं जो निरंतर अद्यतन की आवश्यकता है)
ओह, मुझे यह मिल गया है, इसलिए मुझे यह कहने की बजाय मुझे अपनी मानसिकता बदलनी चाहिए, "मुझे उन लोगों की एक सूची प्राप्त करें जिनके शहर जर्मनी है," मुझे पूछना चाहिए "जर्मनी पर एक नज़र डालें, पथ जब तक आप उपयोगकर्ताओं तक नहीं पहुंचते और मुझे वह सूची प्राप्त नहीं करते हैं "। तब क्या होगा यदि मेरे पास 1 से अधिक शर्त है (पुराने दिमाग के लिए खेद है) उन उपयोगकर्ताओं से चुनें जहां User.company.location.city.country.name = "जर्मनी" और उपयोगकर्ता.department.parent.parent = "उत्पाद विकास"; "विभाग" के साथ पदानुक्रमित हो सकता है (बस स्थान की तरह), उदा। "बैकएंड" -> "वेब विकास" -> "सॉफ्टवेयर विकास" -> "उत्पाद विकास"? – TruongSinh
उपरोक्त वर्णित परिदृश्य के लिए उपयुक्त "ग्राफ चौराहे" है, और क्या यह ओ (एम + एन) है जहां एम नंबर है यदि जर्मनी में कर्मचारी और एन "उत्पाद विकास" विभाग में कर्मचारियों की संख्या है? और क्या सही कार्य 'GRAPH_COMMON_NEIGHBORS' है? – TruongSinh
आप [ट्रैवर्सल भाग में फ़िल्टर विवरण] जोड़ सकते हैं (https://docs.arangodb.com/devel/Aql/GraphTraversals.html#filter-examples) और शायद इसलिए path.vertices [3 जैसे कुछ के लिए फ़िल्टर करना चाहते हैं ] .department == "उत्पाद विकास" - या यदि वह किसी अन्य संग्रह से आता है, तो आप पहले उस विभाग को 'एलईटी विभाग = (डी विभागों के लिए फ़िल्टर नाम =" उत्पाद विकास "रिटर्न डी)' – dothebart