Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. {
  2. "_id":"5c59c35d8610f702d00e6f70",
  3. "ipAddress":"50.116.14.48",
  4. "startTime":"2018-02-06T12:01:59.000Z",
  5. "endTime":"2018-02-06T12:31:00.000Z",
  6. }
  7.  
  8. [
  9. {
  10. "occurrences":1,
  11. "startWindow":"2018-02-06T12:00:00.000Z",
  12. "endWindow":"2018-02-06T12:15:00.000Z"
  13. },
  14. {
  15. "occurrences":1,
  16. "startWindow":"2018-02-06T12:15:01.000Z",
  17. "endWindow":"2018-02-06T12:30:00.000Z"
  18. },
  19. {
  20. "occurrences":1,
  21. "startWindow":"2018-02-06T12:30:01.000Z",
  22. "endWindow":"2018-02-06T12:45:00.000Z"
  23. }
  24. ]
  25.  
  26. db.col.aggregate([
  27. {
  28. $project: {
  29. startTime: { $toLong: { $toDate: "$startTime" } },
  30. endTime: { $toLong: { $toDate: "$endTime" } }
  31. }
  32. },
  33. {
  34. $project: {
  35. ranges: [
  36. {
  37. start: { $subtract: [ "$startTime", { $mod: [ "$startTime", 900000 ] } ] },
  38. end: { $add: [ { $subtract: [ "$startTime", { $mod: [ "$startTime", 900000 ] } ] }, 900000 ] }
  39. },
  40. {
  41. start: { $subtract: [ "$endTime", { $mod: [ "$endTime", 900000 ] } ] },
  42. end: { $add: [ { $subtract: [ "$endTime", { $mod: [ "$endTime", 900000 ] } ] }, 900000 ] }
  43. }
  44. ]
  45. }
  46. },
  47. {
  48. $unwind: "$ranges"
  49. },
  50. {
  51. $group: {
  52. _id: "$ranges",
  53. count: { $sum: 1 }
  54. }
  55. },
  56. {
  57. $project: {
  58. _id: 0,
  59. occurences: "$count",
  60. startWindow: { $toString: { $toDate: "$_id.start" } },
  61. endWindow: { $toString: { $toDate: "$_id.end" } }
  62. }
  63. }
  64. ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement