2013-10-16 3 views
1

그래서, 내가 MySQL의에서이 같은 뭔가가 필요 나는 주 후 오래되지 않은 데이터를 선택하기 위해 노력하고있어 질의 : 2013-10-14 14:53:11 그래서 나는 일주일보다 오래된없는 데이터를 필요로하는 dt 키를 기반으로 : $group에서MongoDB를 선택 데이터

$this->aggregate(
       array(
        array('$sort' => array('_id' => self::SORT_DESC)), 
        array('$match' => array('seen' => 0)), 
        array('$group' => array('_id'=>'$target_user', 
         'type' => array('$push'=> array('type' => '$type', 
          'title'=>'$title', 
          'link'=>'$link', 
          'dt'=>'$dt', 
          'own'=>'$own', 
          'usr'=>'$usr')) 
         )), 
        )); 

필드 dt는 다음과 같이 저장되는 문자열 날짜입니다.

Mongo에서 수행 할 수 있습니까? 당신이 할 수있는 MongoDate를 사용

+0

','날짜 '=> 배열 ('$의 LTE '=> 한 strtotime ('- 일주 ', $의 DATE_FIELD를))' – Sammaye

+0

당신은 조금 일 수 있습니다 더 정확하게? mabe 전체 답변을 게시, 감사합니다 – user2885793

+0

PHP 모델 내에서 날짜를 저장하는 변수의 이름은 무엇입니까? 또한 그것은 문자열인가 MongoDate인가? – Sammaye

답변

1

:

$this->aggregate(
    array(
     array('$match' => array('seen' => 0, 'dt'=>array('$gte'=>enw \MongoDate(strtotime('-1 week'))))), 
     array('$sort' => array('_id' => self::SORT_DESC)), 
     array('$group' => array('_id'=>'$target_user', 
      'type' => array('$push'=> array('type' => '$type', 
       'title'=>'$title', 
       'link'=>'$link', 
       'dt'=>'$dt', 
       'own'=>'$own', 
       'usr'=>'$usr')) 
    )), 
));