public function project($projection)
    {
        if ($projection instanceof Closure) {
            $callback = $projection;
            $projection = new Projection();
            $callback($projection);
        }

        if ($projection instanceof Projection) {
            $projection = $projection->getProjection();
        }

        $this->pipeline[] = ['$project' => $projection];

        return $this;
    }