<?php

namespace OfficeBrain\Bundle\ActivityBundle\Document;

use Doctrine\ODM\MongoDB\DocumentRepository;

/**
 * SearchLogRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class SearchLogRepository extends DocumentRepository
{
    public function getQueryBudler()
    {
        return $this->getDocumentManager()->getRepository('OfficeBrainActivityBundle:SearchLog')->createQueryBuilder('a');
    }
    
    /**
     * @author Employee Id: 4488
     * Description :
     * saveSearchLog method to save Search keyword Data in mongodb
     *
     * @param 1 : string logparameter <request>
     * @param 1 : array $searchCriteria <array("mainFilter"="all")>
     * @param 1 : string $searchKeyword <search_query>
     *
     **/
    public function save($logObj)
    {
        $dm = $this->getDocumentManager();
        $dm->persist($logObj);
        $dm->flush();
        return $logObj;
    }
    public function searchKeyWordData()
    {
    	
//     	$count=$this->getQueryBudler()->find("OfficeBrainActivityBundle:SearchLog")->count()->getQuery()->execute();
    	exit;
    	$qm = $this->dm->createQueryBuilder()
    	->group( array ('searchKeyword' => 1), array ('total' => 0) )
    	->reduce( 'function ( curr, result ) { result.searchKeyword += curr._Id;}' );
    	$result = $qm->getQuery ()->execute ();
    	
//     	echo "<pre>";
//     	print_r($result);
//     	echo "</pre>";
//     	exit;
    	
    	$map='function(){emit(this._id,this.searchKeyword}';
    	//$reduce='function(key,values){return Array.sum(values)}';
    	$query=$this->getQueryBudler('SearchLog')
    	->group(array("this.searchKeyword"=>'1'))
    	->reduce("function(k, vals) {
        			var sum = 0;
        			for (var i in vals) {
            		sum += vals[i];
        			}
        			return sum;
    			}");
    	$data=$query->getQuery()->execute();
    	echo "<pre>";
    	print_r($data);
    	echo "</pre>";
    	exit;
    }
}
