/* original data is from 3.12.5, enterprise */
/* original data gathered from database {"name":"_system"} */
/* graphs */
try { db._graphs.remove("worldCountry"); } catch (err) {}
db._graphs.insert({"_key":"worldCountry","_id":"_graphs/worldCountry","_rev":"_j4JgPdC---","edgeDefinitions":[{"collection":"worldEdges","from":["worldVertices"],"to":["worldVertices"]}],"orphanCollections":[]});
/*drop views */
/* analyzers setup */
/* collections and indexes setup */
try { db._drop("worldEdges"); } catch (err) { print(String(err)); }
try { db._drop("worldVertices"); } catch (err) { print(String(err)); }
db._create("worldVertices", {"globallyUniqueId":"hB7C02EE43DCE/86511","isSystem":false,"waitForSync":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":0},"writeConcern":1,"cacheEnabled":false,"computedValues":null,"syncByRevision":true,"schema":null});
db._createEdgeCollection("worldEdges", {"globallyUniqueId":"hB7C02EE43DCE/86512","isSystem":false,"waitForSync":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":86782},"writeConcern":1,"cacheEnabled":false,"computedValues":null,"syncByRevision":true,"schema":null});
/* example data */
db["worldVertices"].insert({"_key":"world","_id":"worldVertices/world","_rev":"_j4JgPdG---","name":"XXXXX11","type":"XXXX12"});
db["worldVertices"].insert({"_key":"continent-africa","_id":"worldVertices/continent-africa","_rev":"_j4JgPdG--_","name":"XXXXXX13","type":"XXXXXXXXX14"});
db["worldVertices"].insert({"_key":"continent-asia","_id":"worldVertices/continent-asia","_rev":"_j4JgPdG--A","name":"XXXX15","type":"XXXXXXXXX16"});
db["worldVertices"].insert({"_key":"continent-australia","_id":"worldVertices/continent-australia","_rev":"_j4JgPdG--B","name":"XXXXXXXXX17","type":"XXXXXXXXX18"});
db["worldVertices"].insert({"_key":"continent-europe","_id":"worldVertices/continent-europe","_rev":"_j4JgPdK---","name":"XXXXXX19","type":"XXXXXXXXX20"});
db["worldVertices"].insert({"_key":"continent-north-america","_id":"worldVertices/continent-north-america","_rev":"_j4JgPdK--_","name":"XXXXXXXXXXXXX21","type":"XXXXXXXXX22"});
db["worldVertices"].insert({"_key":"continent-south-america","_id":"worldVertices/continent-south-america","_rev":"_j4JgPdK--A","name":"XXXXXXXXXXXXX23","type":"XXXXXXXXX24"});
db["worldVertices"].insert({"_key":"country-afghanistan","_id":"worldVertices/country-afghanistan","_rev":"_j4JgPdK--B","name":"XXXXXXXXXXX25","type":"XXXXXXX26","code":"XXX27"});
db["worldVertices"].insert({"_key":"country-albania","_id":"worldVertices/country-albania","_rev":"_j4JgPdK--C","name":"XXXXXXX28","type":"XXXXXXX29","code":"XXX30"});
db["worldVertices"].insert({"_key":"country-algeria","_id":"worldVertices/country-algeria","_rev":"_j4JgPdO---","name":"XXXXXXX31","type":"XXXXXXX32","code":"XXX33"});
/* collection 'worldVertices' needs 77 more document(s) */
db["worldEdges"].insert({"_key":"86612","_id":"worldEdges/86612","_from":"worldVertices/continent-africa","_to":"worldVertices/world","_rev":"_j4JgPeO--_","type":"XXXXX1"});
db["worldEdges"].insert({"_key":"86614","_id":"worldEdges/86614","_from":"worldVertices/continent-asia","_to":"worldVertices/world","_rev":"_j4JgPeO--A","type":"XXXXX2"});
db["worldEdges"].insert({"_key":"86616","_id":"worldEdges/86616","_from":"worldVertices/continent-australia","_to":"worldVertices/world","_rev":"_j4JgPeO--B","type":"XXXXX3"});
db["worldEdges"].insert({"_key":"86618","_id":"worldEdges/86618","_from":"worldVertices/continent-europe","_to":"worldVertices/world","_rev":"_j4JgPeO--C","type":"XXXXX4"});
db["worldEdges"].insert({"_key":"86620","_id":"worldEdges/86620","_from":"worldVertices/continent-north-america","_to":"worldVertices/world","_rev":"_j4JgPeS---","type":"XXXXX5"});
db["worldEdges"].insert({"_key":"86622","_id":"worldEdges/86622","_from":"worldVertices/continent-south-america","_to":"worldVertices/world","_rev":"_j4JgPeS--_","type":"XXXXX6"});
db["worldEdges"].insert({"_key":"86624","_id":"worldEdges/86624","_from":"worldVertices/country-afghanistan","_to":"worldVertices/continent-asia","_rev":"_j4JgPeS--A","type":"XXXXX7"});
db["worldEdges"].insert({"_key":"86626","_id":"worldEdges/86626","_from":"worldVertices/country-albania","_to":"worldVertices/continent-europe","_rev":"_j4JgPeS--B","type":"XXXXX8"});
db["worldEdges"].insert({"_key":"86628","_id":"worldEdges/86628","_from":"worldVertices/country-algeria","_to":"worldVertices/continent-africa","_rev":"_j4JgPeW---","type":"XXXXX9"});
db["worldEdges"].insert({"_key":"86630","_id":"worldEdges/86630","_from":"worldVertices/country-andorra","_to":"worldVertices/continent-europe","_rev":"_j4JgPeW--_","type":"XXXXX10"});
/* collection 'worldEdges' needs 76 more document(s) */
/* views */
/* explain result */
// Query String (152 chars, results cachable: true):
// FOR v, e, p IN 0..10 INBOUND "worldVertices/continent-europe" GRAPH "worldCountry" FILTER v._key !=
// @country RETURN CONCAT_SEPARATOR(" -- ", p.vertices)
//
// Execution plan:
// Id NodeType Par Est. Comment
// 1 SingletonNode 1 * ROOT
// 2 TraversalNode ✓ 1 - FOR v /* vertex */, p /* paths: vertices */ IN 0..10 /* min..maxPathDepth */ INBOUND 'worldVertices/continent-europe' /* startnode */ GRAPH 'worldCountry' /* order: dfs */
// 3 CalculationNode ✓ 1 - LET #4 = (v.`_key` != "XXXXXXXXXXXXXXX0") /* simple expression */
// 4 FilterNode ✓ 1 - FILTER #4
// 5 CalculationNode ✓ 1 - LET #5 = CONCAT_SEPARATOR(" -- ", p.`vertices`) /* simple expression */
// 6 ReturnNode 1 - RETURN #5
//
// Indexes used:
// By Name Type Collection Unique Sparse Cache Selectivity Fields Stored values Ranges
// 2 edge edge worldEdges false false false 100.00 % [ `_to` ] [ ] base INBOUND
//
// Functions used:
// Name Deterministic Cacheable Uses V8
// CONCAT_SEPARATOR true true false
//
// Traversals on graphs:
// Id Depth Vertex collections Edge collections Options Filter / Prune Conditions
// 2 0..10 worldVertices worldEdges uniqueVertices: none, uniqueEdges: path, order: dfs FILTER (v.`_key` != "XXXXXXXXXXXXXXX0")
//
// Optimization rules applied:
// Id Rule Name Id Rule Name Id Rule Name
// 1 move-calculations-up 4 move-filters-up-2 7 async-prefetch
// 2 move-filters-up 5 optimize-traversals
// 3 move-calculations-up-2 6 remove-redundant-path-var
//
// 58 rule(s) executed, 1 plan(s) created, peak mem [b]: 0, exec time [s]: 0.00042
/* explain command */
db._explain({"query":"FOR v, e, p IN 0..10 INBOUND \"worldVertices/continent-europe\" GRAPH \"worldCountry\" FILTER v._key != @country RETURN CONCAT_SEPARATOR(\" -- \", p.vertices)","bindVars":{"country":"XXXXXXXXXXXXXXX0"},"options":{"explainRegisters":true,"explainInternals":false,"verbosePlans":true,"profile":2}});