2013-08-10 4 views
2

에 몽고 쿼리를 변환 내가 PHP에서이 코드를 사용하려면지도, 몽고에서 감소 PHP는 몽고

db.Table_Name.group({ 
    "key": { "Camp": true }, 
    "initial": { "Clicks": 0 }, 
    "reduce": function(obj, prev) { 
     prev.Clicks = prev.Clicks + obj.Clicks-0; 
    }, 
    "cond": { "Date": { $gte: "2012-10-26", $lte: "2012-10-28" } } 
}); 


처럼 보이는 몽고에서 쿼리를했다. 나는 모든 가능한 방법을 시도했다. 어느 누구도이 문제에서 나를 도울 수 있습니까? 심지어 내가 이것을 따라 갔다 http://php.net/manual/en/mongodb.command.php 아무도 도와주세요.

나는이

$reduce = new MongoCode(
    "function(obj, prev) {prev.Clicks = prev.Clicks + obj.Clicks-0;}" 
); 

$result = $db_1->command(array(
    'mapreduce' => 'Collection_Name', 
    'key'  => array("Camp" => true), 
    'initial' => array('Clicks' => 0), 
    'reduce' => $reduce,     
    'cond' => array(
     'Date' => array('$gte' => '2010-07-12' , '$lte' => '2013-07-12') 
    ), 
)); 

답변

2

당신이 MongoCollection::group를 사용하여 시도 있으려고? 귀하의 예를 들어, (테스트되지 않은) 이런 식으로 보일 수 있습니다.

$keys = array("Camp" => 1); 
$initial = array("Clicks" => 0); 
$reduce = "function(obj, prev) {prev.Clicks = prev.Clicks + obj.Clicks-0;}"; 
$condition = array(
    'Date' => array('$gte' => '2010-07-12', '$lte' => '2013-07-12') 
); 
$result = $collection->group($keys, $initial, $reduce, $condition); 

또한, 난 그냥 예를 들어 알고는 MongoDB의 용어를 수용하는 것을 시도해야하지만, Table_NameMongoDb does not have tables으로 Collection_Name해야한다.

+0

테이블; 소장품 ... 최종 사용자에게 큰 차이가 없다. 테이블에 전화를 걸면 행복하다. 문제가 실제로 나타나지 않는다. – Sammaye

+2

안녕하세요, Sammaye, 네, 바로 거기에 진짜 '문제가 없습니다.'... 그러나 잘못된 용어를 사용하는 것은 장기적으로 당신의 두뇌에 혼란을 야기 할뿐입니다. 틀린 용어 또는 더 나쁜 면접 시험을 사용하는 경우에 회의에서 어떻게 볼 것인가는 말할 것도 없습니다. – Robbie

+0

도움을 주셔서 감사합니다, 날짜별로 정렬하는 방법을 말할 수 있습니까? – Sreenath

0

는 현재 그룹 명령을 사용할 수 있지만입니다 :

  • 느린
  • 기본적으로지도는
  • 자바 스크립트를 줄
  • 일반적으로 (어떤 사람들은 그것을 만든)
  • 샤딩 작동하지 않습니다
  • 집계 프레임 워크 대신 사용되지 않음

대신 더 좋은 옵션은 집계 프레임 워크를 사용하는 것입니다 :

$mongo->db->collection->aggregate(array(
    array('$match'=>array('date'=>array('$gte' => '2010-07-12','$lte' => '2013-07-12'))), 
    array('$group'=>array('_id'=>'$Camp', 'sum_clicks'=>array('$sum'=>'$Clicks'))) 
)); 
관련 문제