所以我试图选择那些不是一周的数据,我需要这样的东西来自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'))
)),
));
dt
中的字段$group
是一个字符串日期,其存储方式如下:2013-10-14 14:53:11
所以根据dt
键,我需要的数据不早于一个星期。
可以在Mongo中完成这样的事吗?
答案 0 :(得分:1)
使用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'))
)),
));