Advertisement
Guest User

Untitled

a guest
Oct 24th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.20 KB | None | 0 0
  1. // Cleanup to allow for multiple load:
  2. delete customers; delete items; delete sales; delete baskets;
  3. delete reviews; delete reviewRel; delete r; delete gg; delete g;
  4.  
  5. // Create the collections:
  6. ["customers", "items", "sales", "baskets", "reviews", "reviewRel"]
  7. .map(db._drop);
  8. var customers = db._create("customers",
  9. {numberOfShards: 3, replicationFactor: 2});
  10. var items = db._create("items", {numberOfShards: 5, replicationFactor: 2});
  11. var sales = db._createEdgeCollection("sales",
  12. {numberOfShards: 5, replicationFactor: 2});
  13. var baskets = db._create("baskets", {numberOfShards: 10});
  14. var reviews = db._create("reviews", {numberOfShards: 3, replicationFactor: 2});
  15. var reviewRel = db._createEdgeCollection("reviewRel",
  16. {numberOfShards: 3, replicationFactor: 2});
  17.  
  18. // Put in some data:
  19.  
  20. customers.insert({_key: "max", name: "Neunhöffer", firstName: "Max",
  21. memberSince: "2016-10-23T16:21:03.457Z",
  22. address: {street: "Im Bendchen 35a",
  23. city: "Kerpen", zip: "50169"}});
  24. customers.insert({_key: "hugo", name: "Honk", firstName: "Hugo",
  25. memberSince: "2016-10-16T12:13:00.123Z",
  26. address: {street: "Hauptstraße 127",
  27. city: "Berlin", zip: "10123"}});
  28. customers.insert({_key: "lulu", name: "Lustig", firstName: "Lulu",
  29. memberSince: "2015-09-15T09:29:00.000Z",
  30. address: {street: "Neumarkt 20",
  31. city: "Köln", zip: "50674"}});
  32.  
  33. items.insert({_key: "table", description: "table", price: 123.99,
  34. inStock: 42, weight: 17, shipping: 4.95,
  35. orderId: "123-12324-1234", supplier: "ikea"});
  36. items.insert({_key: "chair", description: "chair", price: 47.99,
  37. inStock: 53, weight: 4, shipping: 3.95,
  38. orderId: "432-12342-5434", supplier: "ikea"});
  39. items.insert({_key: "tv", description: "tv set", price: 999.98,
  40. inStock: 3, weight: 12, shipping: 9.95,
  41. orderId: "534-86656-5455", supplier: "philips"});
  42. items.insert({_key: "pc", description: "desktop computer", price: 299.00,
  43. inStock: 5, weight: 8, shipping: 9.95,
  44. orderId: "653-12345-9876", supplier: "ibm"});
  45.  
  46. sales.insert({_from: "customers/max", _to: "items/pc",
  47. date: "2016-10-24T07:59:01.123Z",
  48. billingId: "max-2016-1234"});
  49. sales.insert({_from: "customers/hugo", _to: "items/chair",
  50. date: "2016-07-12T12:12:12.566Z",
  51. billingId: "hugo-2016-0768"});
  52. sales.insert({_from: "customers/hugo", _to: "items/chair",
  53. date: "2016-07-12T12:12:12.566Z",
  54. billingId: "hugo-2016-0768"});
  55. sales.insert({_from: "customers/hugo", _to: "items/chair",
  56. date: "2016-07-12T12:12:12.566Z",
  57. billingId: "hugo-2016-0768"});
  58. sales.insert({_from: "customers/hugo", _to: "items/table",
  59. date: "2016-07-12T12:12:12.566Z",
  60. billingId: "hugo-2016-0768"});
  61. sales.insert({_from: "customers/lulu", _to: "items/tv",
  62. date: "2015-12-23T11:55:07.123Z",
  63. billingId: "lulu-2015-9998"});
  64. sales.insert({_from: "customers/lulu", _to: "items/pc",
  65. date: "2016-03-16T20:22:15.987Z",
  66. billingId: "lulu-2016-0123"});
  67. sales.insert({_from: "customers/lulu", _to: "items/chair",
  68. date: "2016-04-16T19:52:12.123Z",
  69. billingId: "lulu-2016-0256"});
  70.  
  71. var r = reviews.insert({rating: 5, text: "This is a good computer.",
  72. item: "pc"});
  73. reviewRel.insert({_from: "customers/max", _to: r._id, type: "wrote"});
  74. reviewRel.insert({_from: "customers/hugo", _to: r._id, type:"liked", agree: 4});
  75. reviewRel.insert({_from: "customers/lulu",_to: r._id, type:"liked", agree: -3});
  76.  
  77. r = reviews.insert({rating: 1, text: "Bad chair, do not buy!",
  78. item: "chair"});
  79. reviewRel.insert({_from: "customers/hugo", _to: r._id, type: "wrote"});
  80. reviewRel.insert({_from: "customers/max", _to: r._id,type: "liked", agree: -5});
  81. reviewRel.insert({_from: "customers/lulu", _to: r._id,type:"liked", agree: -1});
  82.  
  83. baskets.insert({customer: "max",
  84. items: [{id: "chair", number: 6}, {id: "table", number: 1}],
  85. lastModified: "2016-10-24T6:55:07.123Z",
  86. lastSeen: "2016-10-24T6:56:06:678Z"})
  87. baskets.insert({customer: "hugo",
  88. items: [{id: "pc", number: 1}],
  89. lastModified: "2016-10-23T23:59:12.456",
  90. lastSeen: "2016-10-24T02:45:00.149"});
  91.  
  92. // Create some indexes:
  93.  
  94. customers.ensureIndex({type: "skiplist", fields: ["name", "firstName"]});
  95. items.ensureIndex({type: "hash", fields: ["orderId"], unique: true});
  96. sales.ensureIndex({type: "skiplist", fields: ["date"]});
  97. sales.ensureIndex({type: "hash", fields: ["billingId"], unique: false});
  98. baskets.ensureIndex({type: "hash", fields: ["customer"], unique: true});
  99.  
  100. // Create graph:
  101.  
  102. var gg = require("@arangodb/general-graph");
  103. try {
  104. gg._drop("review");
  105. gg._drop("sales");
  106. } catch (e) {
  107. }
  108.  
  109. var reviewGraph = gg._create("review");
  110. reviewGraph._extendEdgeDefinitions(
  111. gg._relation("reviewRel", ["customers"], ["reviews"]));
  112. var salesGraph = gg._create("sales");
  113. salesGraph._extendEdgeDefinitions(
  114. gg._relation("sales", ["customers"], ["items"]));
  115.  
  116. "Shop created."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement