/** * @param $pk * @param null | array | EMongoCriteria $criteria * @return $this[] */ public function findAllByPk($pk, $criteria = null) { return parent::findAllByPk(MtMongoCriteria::toMongoId($pk), $criteria); }
public static function toMongoId($id) { return MtMongoCriteria::toMongoId($id); }
private function _prepareCondition($condition, $attribute, $type) { if (is_string($type) and function_exists($fnName = strtolower($type))) { $prepare = function ($condition) use($fnName) { if (is_scalar($condition) and !is_bool($condition)) { $condition = $fnName($condition); } return $condition; }; $condition = is_array($condition) ? array_map($prepare, $condition) : $prepare($condition); } elseif ($type == 'MongoId') { $condition = MtMongoCriteria::toMongoId($condition); } elseif (is_array($type) and $field = $this->getField($attribute)) { $condition = is_array($condition) ? array_map([$field, 'prepareCondition'], $condition) : $field->prepareCondition($condition); } return $condition; }