/* original data is from 3.12.2, 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":"_iXQuGm6--_","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":"hDA74058C1843/85731","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":"hDA74058C1843/85732","isSystem":false,"waitForSync":false,"keyOptions":{"allowUserKeys":true,"type":"traditional","lastValue":86002},"writeConcern":1,"cacheEnabled":false,"computedValues":null,"syncByRevision":true,"schema":null});
/* example data */
db["worldVertices"].insert({"_key":"world","_id":"worldVertices/world","_rev":"_iXQuGnC---","name":"XXXXX11","type":"XXXX12"});
db["worldVertices"].insert({"_key":"continent-africa","_id":"worldVertices/continent-africa","_rev":"_iXQuGnC--_","name":"XXXXXX13","type":"XXXXXXXXX14"});
db["worldVertices"].insert({"_key":"continent-asia","_id":"worldVertices/continent-asia","_rev":"_iXQuGnC--A","name":"XXXX15","type":"XXXXXXXXX16"});
db["worldVertices"].insert({"_key":"continent-australia","_id":"worldVertices/continent-australia","_rev":"_iXQuGnC--B","name":"XXXXXXXXX17","type":"XXXXXXXXX18"});
db["worldVertices"].insert({"_key":"continent-europe","_id":"worldVertices/continent-europe","_rev":"_iXQuGnG---","name":"XXXXXX19","type":"XXXXXXXXX20"});
db["worldVertices"].insert({"_key":"continent-north-america","_id":"worldVertices/continent-north-america","_rev":"_iXQuGnG--_","name":"XXXXXXXXXXXXX21","type":"XXXXXXXXX22"});
db["worldVertices"].insert({"_key":"continent-south-america","_id":"worldVertices/continent-south-america","_rev":"_iXQuGnG--A","name":"XXXXXXXXXXXXX23","type":"XXXXXXXXX24"});
db["worldVertices"].insert({"_key":"country-afghanistan","_id":"worldVertices/country-afghanistan","_rev":"_iXQuGnG--B","name":"XXXXXXXXXXX25","type":"XXXXXXX26","code":"XXX27"});
db["worldVertices"].insert({"_key":"country-albania","_id":"worldVertices/country-albania","_rev":"_iXQuGnK---","name":"XXXXXXX28","type":"XXXXXXX29","code":"XXX30"});
db["worldVertices"].insert({"_key":"country-algeria","_id":"worldVertices/country-algeria","_rev":"_iXQuGnK--_","name":"XXXXXXX31","type":"XXXXXXX32","code":"XXX33"});
/* collection 'worldVertices' needs 77 more document(s) */
db["worldEdges"].insert({"_key":"85832","_id":"worldEdges/85832","_from":"worldVertices/continent-africa","_to":"worldVertices/world","_rev":"_iXQuGoK---","type":"XXXXX1"});
db["worldEdges"].insert({"_key":"85834","_id":"worldEdges/85834","_from":"worldVertices/continent-asia","_to":"worldVertices/world","_rev":"_iXQuGoK--_","type":"XXXXX2"});
db["worldEdges"].insert({"_key":"85836","_id":"worldEdges/85836","_from":"worldVertices/continent-australia","_to":"worldVertices/world","_rev":"_iXQuGoK--A","type":"XXXXX3"});
db["worldEdges"].insert({"_key":"85838","_id":"worldEdges/85838","_from":"worldVertices/continent-europe","_to":"worldVertices/world","_rev":"_iXQuGoK--B","type":"XXXXX4"});
db["worldEdges"].insert({"_key":"85840","_id":"worldEdges/85840","_from":"worldVertices/continent-north-america","_to":"worldVertices/world","_rev":"_iXQuGoO---","type":"XXXXX5"});
db["worldEdges"].insert({"_key":"85842","_id":"worldEdges/85842","_from":"worldVertices/continent-south-america","_to":"worldVertices/world","_rev":"_iXQuGoO--_","type":"XXXXX6"});
db["worldEdges"].insert({"_key":"85844","_id":"worldEdges/85844","_from":"worldVertices/country-afghanistan","_to":"worldVertices/continent-asia","_rev":"_iXQuGoO--A","type":"XXXXX7"});
db["worldEdges"].insert({"_key":"85846","_id":"worldEdges/85846","_from":"worldVertices/country-albania","_to":"worldVertices/continent-europe","_rev":"_iXQuGoO--B","type":"XXXXX8"});
db["worldEdges"].insert({"_key":"85848","_id":"worldEdges/85848","_from":"worldVertices/country-algeria","_to":"worldVertices/continent-africa","_rev":"_iXQuGoS---","type":"XXXXX9"});
db["worldEdges"].insert({"_key":"85850","_id":"worldEdges/85850","_from":"worldVertices/country-andorra","_to":"worldVertices/continent-europe","_rev":"_iXQuGoS--_","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
//
// 55 rule(s) executed, 1 plan(s) created, peak mem [b]: 0, exec time [s]: 0.00033
/* 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}});