public function geoNear($x, $y = null)
    {
        if ($x instanceof Point) {
            $x = $x->jsonSerialize();
        }

        $this->query['type'] = Query::TYPE_GEO_NEAR;
        $this->query['geoNear'] = array(
            'near' => is_array($x) ? $x : array($x, $y),
            'options' => array(
                'spherical' => is_array($x) && isset($x['type']),
            ),
        );
        return $this;
    }