protected function _params(&$p)
{
foreach ($p as $k => &$v) {
if ($k === 'fields' || $k === 'sort') {
$v = $this->_paramFields($v);
} elseif ($k === 'where') {
if (is_string($v)) {
$v = new \MongoCode($v);
}
} elseif ($k === 'reduce') {
if (is_string($v)) {
$v = new \MongoCode($v);
}
} elseif ($k === 'rp') {
if (is_string($v)) {
$v = ['mode' => $v];
}
}
}
if (!isset($p['offset'])) {
$p['offset'] = 0;
}
if (!isset($p['limit'])) {
$p['limit'] = -1;
}
if (!isset($p['opts'])) {
$p['opts'] = 0;
}
if (!isset($p['key'])) {
$p['key'] = '';
}
if (mb_orig_strpos($p['col'], '.') === false) {
$p['col'] = $this->dbname . '.' . $p['col'];
}
}