storoge

Untitled

Feb 27th, 2017
99
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [
  2.  
  3.     {
  4.       $match: {
  5.         "creatorDeptId": {$exists: true},
  6.         "claimCreate"    : {$exists: true},
  7.         "customClaimNumber"    : {$exists: true},
  8.         "currStatus.statusCode"    : {$exists: true},
  9.         "daysToDeadline"  : {$exists: true},
  10.         "service.name"    : {$exists: true},
  11.         "service.srguServicePassportId"   : {$exists: true},
  12.         "service.srguDepartmentName"    : {$exists: true},
  13.         "oktmo": { $regex: "^46" } ,
  14. "creatorDeptId": "mfc-odincovo"
  15.       }
  16.     },
  17.  
  18.     {
  19.       $project: {
  20.         "claimCreate"    : "$claimCreate",
  21.         "statusDate"     : "$currStatus.statusDate",
  22.         "statusCode"     : "$currStatus.statusCode",
  23.         "consultation"   : "$consultation",
  24.         "creatorDeptId"  : "$creatorDeptId",
  25.         "daysToDeadline" : "$daysToDeadline",
  26.        
  27.         "provLevel": { $ifNull: [ "$provLevel"  , "" ] },
  28.         "urmName":   { $ifNull: [ "$urmName"    , "" ] },
  29.         "urmNumber": { $ifNull: [ "$urmNumber"  , "" ] },
  30.        
  31.         "in_claimCreate": { $and: [
  32.           { $lte: [ "$claimCreate", { $date: "2016-06-05T00:00:00Z" } ] },
  33.           { $gte: [ "$claimCreate", { $date: "2016-06-01T00:00:00Z" } ] }
  34.          ] },
  35.          
  36.         "in_statusDate":  { $and: [
  37.           { $lte: [ "$currStatus.statusDate", { $date: "2016-06-05T00:00:00Z" } ] },
  38.           { $gte: [ "$currStatus.statusDate", { $date: "2016-06-01T00:00:00Z" } ] } ] },
  39.          
  40.         "in_deadline": {$and: [
  41.           { $eq: [ "$consultation"  , false ] },
  42.           { $lt: [ "$daysToDeadline", 0 ] },
  43.           { $gt: [ "$daysToDeadline", -231 ] },
  44.           { $eq: [ { $ifNull: [ "$resultStatus"  , "<null>" ] }, "<null>" ] },
  45.           { $ne: [ { $ifNull: [ "$currStatus"    , "<null>" ] }, "<null>" ] },
  46.           { $not: [ { $or: [
  47.             { $eq: ["$currStatus.statusCode", "24"] },
  48.             { $eq: ["$currStatus.statusCode", "3" ] },
  49.             { $eq: ["$currStatus.statusCode", "4" ] },
  50.             { $eq: ["$currStatus.statusCode", "41"] },
  51.             { $eq: ["$currStatus.statusCode", "40"] },
  52.             { $eq: ["$currStatus.statusCode", "42"] },
  53.             { $eq: ["$currStatus.statusCode", "10"] },
  54.             { $eq: ["$currStatus.statusCode", "19"] },
  55.             { $eq: ["$currStatus.statusCode", "15"] },
  56.             { $eq: ["$currStatus.statusCode", "20"] },
  57.             { $eq: ["$currStatus.statusCode", "52"] },
  58.          { $eq: ["$currStatus.statusCode", "62"] },
  59.          { $eq: ["$currStatus.statusCode", "58"] },
  60.          { $eq: ["$currStatus.statusCode", "59"] },
  61.          { $eq: ["$currStatus.statusCode", "60"] },
  62.          { $eq: ["$currStatus.statusCode", "61"] }
  63.             ] } ] }
  64.          ] },
  65.          
  66.         "in_work": {$and: [
  67.           { $eq: [ "$consultation"  , false ] },
  68.           { $eq: [ { $ifNull: [ "$resultStatus"             , "<null>" ] }, "<null>" ] },
  69.           { $ne: [ { $ifNull: [ "$currStatus"               , "<null>" ] }, "<null>" ] },
  70.           { $ne: [ { $ifNull: [ "$service.srguServiceId"    , "<null>" ] }, "<null>" ] },
  71.           { $ne: [ { $ifNull: [ "$daysToDeadline"           , "<null>" ] }, "<null>" ] },
  72.           { $not: [ { $or: [
  73.             { $eq: ["$currStatus.statusCode", "24"] },
  74.             { $eq: ["$currStatus.statusCode", "3" ] },
  75.             { $eq: ["$currStatus.statusCode", "4" ] },
  76.             { $eq: ["$currStatus.statusCode", "41"] },
  77.             { $eq: ["$currStatus.statusCode", "40"] },
  78.             { $eq: ["$currStatus.statusCode", "42"] },
  79.             { $eq: ["$currStatus.statusCode", "10"] },
  80.             { $eq: ["$currStatus.statusCode", "19"] },
  81.             { $eq: ["$currStatus.statusCode", "15"] },
  82.             { $eq: ["$currStatus.statusCode", "20"] },
  83.             { $eq: ["$currStatus.statusCode", "52"] },
  84.          { $eq: ["$currStatus.statusCode", "62"] },
  85.          { $eq: ["$currStatus.statusCode", "58"] },
  86.          { $eq: ["$currStatus.statusCode", "59"] },
  87.          { $eq: ["$currStatus.statusCode", "60"] },
  88.          { $eq: ["$currStatus.statusCode", "61"] }
  89.             ] } ] }
  90.          ] }
  91.        
  92.       }
  93.     },
  94.  
  95.  {
  96.       $group: {
  97.         _id: { "creatorDeptId": "$creatorDeptId", "provLevel": "$provLevel", "urmName": "$urmName", "urmNumber": "$urmNumber" },
  98.         a_consultation: { $sum: { $cond: [ { $and: [ { $eq: ["$in_claimCreate", true] }, { $eq: ["$consultation", true  ] } ] }, 1, 0 ] } },
  99.         a_claim       : { $sum: { $cond: [ { $and: [ { $eq: ["$in_claimCreate", true] }, { $eq: ["$consultation", false ] } ] }, 1, 0 ] } },
  100.         a_total       : { $sum: { $cond: [ { $and: [ { $eq: ["$in_claimCreate", true] }                                     ] }, 1, 0 ] } },
  101.        
  102.         a_completed   : { $sum: { $cond: [ { $and: [ { $eq: ["$in_statusDate", true] }, { $eq: ["$statusCode", "24"  ] } ] }, 1, 0 ] } },
  103.        
  104.         a_deadline       : { $sum: { $cond: [ { $and: [ { $eq: ["$in_deadline", true] } ] }, 1, 0 ] } },
  105.         a_deadline7      : { $sum: { $cond: [ { $and: [ { $eq: ["$in_deadline", true] }, { $gt: ["$daysToDeadline", -7] } ] }, 1, 0 ] } },
  106.         a_deadline7_14   : { $sum: { $cond: [ { $and: [ { $eq: ["$in_deadline", true] }, { $and:[ { $lte: ["$daysToDeadline", -7] }, { $gte: ["$daysToDeadline", -14] }] }  ] }, 1, 0 ] } },
  107.         a_deadline14     : { $sum: { $cond: [ { $and: [ { $eq: ["$in_deadline", true] }, { $lt: ["$daysToDeadline", -14] } ] }, 1, 0 ] } },
  108.         a_deadline_sum   : { $sum: { $cond: [ { $and: [ { $eq: ["$in_deadline", true] } ] }, "$daysToDeadline", 0 ] } },
  109.  
  110.         a_work           : { $sum: { $cond: [ { $and: [ { $eq: ["$in_work", true] } ] }, 1, 0 ] } }
  111.       }
  112.     }
  113.  
  114.   ]
RAW Paste Data