Как использовать where / whereDate в агрегированном запросе mongodb?
Я использую агрегированный запрос в laravel и jessenger-mongodb для группировки по полям.
Проблемаздесь, мне нужно добавить условие для извлечения сгруппированных данных определенной даты, например created_at
.
Следующий код работал отлично, если я не использую pass $date
т.е. $date = null
:
public static function getUsersByTypeLogin($date = null)
{
$q = self::raw()->aggregate(
[
array(
'$match' => array(
'type' => self::LOGIN,
)
),
array(
'$group' => array(
'_id' => array(
'lat' => '$latitude',
'long' => '$longitude',
'country' => '$country',
'state' => '$state'
),
'count' => array('$sum' => 1)
)
)
]
);
if(true == $date){
$q = $q->whereDate('created_at','=',$date);
}
return $q;
}
но если я передаю $date
, он возвращает ошибку, он говорит:
message: "Call to undefined method MongoDB\Driver\Cursor::whereDate()"
$ date - это объект Carbon, например:
Carbon @1549843200 {#791
date: 2019-02-11 00:00:00.0 +00:00
}
Пожалуйста, помогите мне в этом.