public function findAndModifyOneBy($filters = [], $update = [], $projections = [], $sorts = [], $options = [])
    {

        $options = $this->createOption($projections, $sorts, $options);

        $filters = $this->castQuery($filters);
        $update = $this->castQuery($update);

        $result = (array) $this->collection->findOneAndUpdate($filters, $update, $options);

        return $this->createObject($result, $options);
    }