Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. Практика:
  2. {
  3. "stock": "GOOGL",
  4. "date": ISODate("2014-12-16"),
  5. "volume": 100,
  6. "quotes": [0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,42,21,22,23],
  7. "exchange": {"country": "USA", "name": "NASDAQ"},
  8. "traders": [{"name": "Don Draper", "id": 42}, {"name": "Rustin Cohle", "id": 21}]
  9. }
  10.  
  11.  
  12. !!! 1. Для акций GOOGL выставить предпоследнюю котировку в 0 для всех записей за прошлый год на французских (FR) биржах
  13. // var time = new Date(Date.now());
  14. // var year = time.getYear() + 1900;
  15.  
  16. // var start = new Date(currentYear - 1, 1, 1)
  17. // var end = new Date(currentYear, 1, 1);
  18. // db.techno.find( {"exchange.country": "FR", "stock": "GOOGL", "date": {$gte: start, $lt: end}} ).forEach("if this.quotes.length > 2 {this.quotes[this.quotes.length -2] = 0}")
  19.  
  20.  
  21. 2. Определить средний объем операций по акциям YNDX за каждый месяц 2014 года
  22. // var start = new Date(2014, 1, 1);
  23. // var end = new Date(2015, 1, 1);
  24.  
  25.  
  26.  
  27. // db.techno.aggregate(
  28. // [
  29. // {
  30. // $match: {"date": {$gte: start, $lt: end}}
  31. // },
  32. // {
  33. // $group:
  34. // {
  35. // _id: { month: {$month: "$date"} },
  36. // totalAmount: { $sum: "$volume"},
  37. // }
  38. // }
  39. // ]
  40. // )
  41.  
  42.  
  43. 3. Вставить 0 значение в массив котировок для всех записей, где число котировок меньше 24
  44. // db.techno.updateMany(
  45. // {$where: "this.quotes.length < 23"},
  46. // { $push: { quotes: 0 } }
  47. // )
  48.  
  49.  
  50. 4. Определить объем операции для каждой американской биржы за 2014 год
  51. // var start = new Date(2014, 1, 1);
  52. // var end = new Date(2015, 1, 1);
  53.  
  54.  
  55.  
  56. // db.techno.aggregate(
  57. // [
  58. // {
  59. // $match: {"date": {$gte: start, $lt: end},
  60. // "exchange.country": "USA"
  61. // }
  62. // },
  63. // {
  64. // $group:
  65. // {
  66. // _id: { birge: "$exchange.name" },
  67. // totalAmount: { $sum: "$volume"},
  68. // }
  69. // }
  70. // ]
  71. // )
  72.  
  73.  
  74. 5. Для каждой акции, которая содержит в названии MAIL, увеличить объем операций на 1
  75. // db.techno.updateMany( {stock: {$regex: 'MAIL'}}, {$inc: {"volume": 1}})
  76.  
  77.  
  78. 6. Для всех документов, где последняя котировка равно нулю и нет котировки 42, нужно выставить объем операций в 0
  79. // db.techno.updateMany(
  80. // {quotes: 42, $where: "this.quotes[this.quotes.length - 1] === 0"},
  81. // {
  82. // $set: {volume: 0},
  83. // $currentDate: { lastModified: true }
  84. // })
  85.  
  86.  
  87. 7. Удалить все записи американских бирж, где отсутсвует\пустой volume
  88. // try {
  89. // db.techno.deleteMany({"volume": null, "exchange.country": "USA"})
  90. // } catch (e) {
  91. // print (e);
  92. // }
  93.  
  94.  
  95. !!!! 8. Найти вторую сотню документов, относящихся к NASDAQ за 2014 год, отсортированных по убыванию объема операций
  96. // var start = new Date(2014, 1, 1);
  97. // var end = new Date(2015, 1, 1);
  98.  
  99. // db.techno.find({ "date": {$gte: start, $lt: end} , "exchange.name": "NASDAQ"}).sort({volume: -1})
  100.  
  101. 9. Найти все документы, где первым трейдером был Don Draper и объем операций при этом превышал 100
  102. // db.techno.find({ "volume": {$gt : 100}, "traders.0.name": "Don Draper" })
  103.  
  104.  
  105. 10. Во все документы, где в январе 2015го есть трейдер Rustin Cohle с идентификаторов 0, нужно добавить атрибут corrupted, выставленный в true
  106. // var start = new Date(2015, 1, 1)
  107. // var end = new Date(2015, 2, 1);
  108.  
  109. // db.techno.updateMany( {"traders.name": "Rustin Cohle", "date": {$gte: start, $lt: end}},
  110. // {$set: {"corrupted": true}, $currentDate: { lastModified: true }} )
  111.  
  112. Теория:
  113. 1. Основные особенности Tarantool
  114. 2. Основные типы nosql баз данных и их особенности
  115. 3. Область применения поколоночных и key-value хранилищ
  116. 4. CAP теорема
  117. 5. Недостатки\ограничения mongodb
  118. 6. sharding\replication в mongodb
  119. 7. Недостатки реляционных СУБД
  120. 8. Строгая и eventual consistency
  121. 9. Основные особенности mongo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement