public function first($field, $expression)
    {
        $this->stage[$field]['$first'] = Expression::normalize($expression);

        return $this;
    }
public function first($field, $expression)
    {
        $this->stage[$field]['$first'] = Expression::normalize($expression);

        return $this;
    }
public function first ( $ field , $ expression ) { $ this -> stage [ $ field ] [ '$first' ] = Expression :: normalize ( $ expression ) ; return $ this ; }
Returns the value that results from applying an expression
to the first document in a group of documents that share the same
group by key. Only meaningful when documents are in a defined order.

@link http://docs.mongodb.org/manual/reference/operator/aggregation/first

@param string $field
@param literal|callable|\Sokil\Mongo\Pipeline\Expression $expression Expression
@return \Sokil\Mongo\Pipeline\GroupStage
Returns the value that results from applying an expression to the first document in a group of documents that share the same group by key . Only meaningful when documents are in a defined order .