private function convertDte($value)
{
if (is_array($value)) {
if (isset($value['$dte'])) {
$date = $value['$dte'];
$parsedDate = new Carbon($date);
if ($parsedDate) {
return new \MongoDate($parsedDate->timestamp, $parsedDate->micro);
} else {
throw new Exceptions\Exception("`{$date}` is not a valid date.");
}
} else {
return array_map([$this, __FUNCTION__], $value);
}
// recursively apply this function to whole pipeline
}
return $value;
}