public function findByDealIds($dealIds)
 {
     $query = $this->createQueryBuilder()->field('d_id')->in($dealIds)->map('function() { 
                  emit(
                    this.' . $this->GROUP_BY . ', ' . str_replace('"', '', Stats::toJsonMap("this", true)) . ');
                 }')->reduce("function(key, values) {\n                      var sum = " . Stats::toJsonMap() . ";\n                      for(var i in values) {" . Stats::toBaseSumString() . Stats::toDemographicsSumString() . Stats::toServicesSumString() . "}\n                    return sum;\n                  }");
     $cursor = null;
     try {
         $cursor = $query->getQuery(array("out" => "last30days." . $this->GROUP_BY))->execute();
     } catch (\Exception $e) {
         \sfContext::getInstance()->getLogger()->err("{DealStatsRepository} findByDealIds failed.\n" . $e->getMessage());
     }
     return $cursor;
 }
Example #2
0
 private function rangeMapReduce($fromDay, $toDay, $groupBy = null)
 {
     return $this->createQueryBuilder()->field("day")->gte(new MongoDate(strtotime($fromDay)))->field("day")->lte(new MongoDate(strtotime($toDay)))->map('function() {
              emit(
                this.' . ($groupBy ? $groupBy : $this->GROUP_BY) . ', ' . str_replace('"', '', Stats::toJsonMap("this", true)) . ');
             }')->reduce("function(key, values) {\n                  var sum = " . Stats::toJsonMap() . ";\n                  for(var i in values) {" . Stats::toBaseSumString() . Stats::toDemographicsSumString() . Stats::toServicesSumString() . "}\n                return sum;\n              }");
 }