MongoDB选择不超过一周的数据


MongoDB select data which is not older than a week

所以我正在尝试选择不比我周长的数据,我需要 mysql 的这样的东西:

WHERE date <= one week ago

这是我当前的查询:

$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'))
                        )),
                    ));

$groupdt字段是一个字符串日期,存储方式如下: 2013-10-14 14:53:11,根据我需要的数据dt键,不超过一周。

蒙戈可以做这样的事情吗?

使用 MongoDate,您可以执行以下操作:

$this->aggregate(
    array(
       array('$match' => array( 'seen' => 0, 'dt' => array('$gte'=> new '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'))
    )),
 ));