public function findOne(array $query = [], bool $normalizeDates = true)
    {
        if ($normalizeDates) {
            $query = $this->normalizeDates($query);
        }

        //Working with projection (required to properly sort results)
        $result = $this->collection->findOne(
            array_merge($this->query, $query),
            $this->createOptions()
        );

        if (empty($result)) {
            return null;
        }

        return $this->odm->make($this->class, $result, false);
    }