/* original data is from 3.12.3, 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":"_ir4c2Aq--_","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":"hED207F9240FC/85718","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":"hED207F9240FC/85719","isSystem":false,"waitForSync":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":85989},"writeConcern":1,"cacheEnabled":false,"computedValues":null,"syncByRevision":true,"schema":null});
/* example data */
db["worldVertices"].insert({"_key":"world","_id":"worldVertices/world","_rev":"_ir4c2Au---","name":"XXXXX11","type":"XXXX12"});
db["worldVertices"].insert({"_key":"continent-africa","_id":"worldVertices/continent-africa","_rev":"_ir4c2Ay---","name":"XXXXXX13","type":"XXXXXXXXX14"});
db["worldVertices"].insert({"_key":"continent-asia","_id":"worldVertices/continent-asia","_rev":"_ir4c2Ay--_","name":"XXXX15","type":"XXXXXXXXX16"});
db["worldVertices"].insert({"_key":"continent-australia","_id":"worldVertices/continent-australia","_rev":"_ir4c2Ay--A","name":"XXXXXXXXX17","type":"XXXXXXXXX18"});
db["worldVertices"].insert({"_key":"continent-europe","_id":"worldVertices/continent-europe","_rev":"_ir4c2Ay--B","name":"XXXXXX19","type":"XXXXXXXXX20"});
db["worldVertices"].insert({"_key":"continent-north-america","_id":"worldVertices/continent-north-america","_rev":"_ir4c2Ay--C","name":"XXXXXXXXXXXXX21","type":"XXXXXXXXX22"});
db["worldVertices"].insert({"_key":"continent-south-america","_id":"worldVertices/continent-south-america","_rev":"_ir4c2Ay--D","name":"XXXXXXXXXXXXX23","type":"XXXXXXXXX24"});
db["worldVertices"].insert({"_key":"country-afghanistan","_id":"worldVertices/country-afghanistan","_rev":"_ir4c2A2---","name":"XXXXXXXXXXX25","type":"XXXXXXX26","code":"XXX27"});
db["worldVertices"].insert({"_key":"country-albania","_id":"worldVertices/country-albania","_rev":"_ir4c2A2--_","name":"XXXXXXX28","type":"XXXXXXX29","code":"XXX30"});
db["worldVertices"].insert({"_key":"country-algeria","_id":"worldVertices/country-algeria","_rev":"_ir4c2A2--A","name":"XXXXXXX31","type":"XXXXXXX32","code":"XXX33"});
/* collection 'worldVertices' needs 77 more document(s) */
db["worldEdges"].insert({"_key":"85819","_id":"worldEdges/85819","_from":"worldVertices/continent-africa","_to":"worldVertices/world","_rev":"_ir4c2Bm---","type":"XXXXX1"});
db["worldEdges"].insert({"_key":"85821","_id":"worldEdges/85821","_from":"worldVertices/continent-asia","_to":"worldVertices/world","_rev":"_ir4c2Bm--_","type":"XXXXX2"});
db["worldEdges"].insert({"_key":"85823","_id":"worldEdges/85823","_from":"worldVertices/continent-australia","_to":"worldVertices/world","_rev":"_ir4c2Bm--A","type":"XXXXX3"});
db["worldEdges"].insert({"_key":"85825","_id":"worldEdges/85825","_from":"worldVertices/continent-europe","_to":"worldVertices/world","_rev":"_ir4c2Bm--B","type":"XXXXX4"});
db["worldEdges"].insert({"_key":"85827","_id":"worldEdges/85827","_from":"worldVertices/continent-north-america","_to":"worldVertices/world","_rev":"_ir4c2Bm--C","type":"XXXXX5"});
db["worldEdges"].insert({"_key":"85829","_id":"worldEdges/85829","_from":"worldVertices/continent-south-america","_to":"worldVertices/world","_rev":"_ir4c2Bm--D","type":"XXXXX6"});
db["worldEdges"].insert({"_key":"85831","_id":"worldEdges/85831","_from":"worldVertices/country-afghanistan","_to":"worldVertices/continent-asia","_rev":"_ir4c2Bq---","type":"XXXXX7"});
db["worldEdges"].insert({"_key":"85833","_id":"worldEdges/85833","_from":"worldVertices/country-albania","_to":"worldVertices/continent-europe","_rev":"_ir4c2Bq--_","type":"XXXXX8"});
db["worldEdges"].insert({"_key":"85835","_id":"worldEdges/85835","_from":"worldVertices/country-algeria","_to":"worldVertices/continent-africa","_rev":"_ir4c2Bq--A","type":"XXXXX9"});
db["worldEdges"].insert({"_key":"85837","_id":"worldEdges/85837","_from":"worldVertices/country-andorra","_to":"worldVertices/continent-europe","_rev":"_ir4c2Bq--B","type":"XXXXX10"});
/* collection 'worldEdges' needs 76 more document(s) */
/* views */
/* explain result */
// Query String (152 chars, cacheable: 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
//
// 56 rule(s) executed, 1 plan(s) created, peak mem [b]: 0, exec time [s]: 0.00038
/* 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}});