|
@@ -289,6 +289,8 @@ class Mongo extends Base
|
|
|
$result[$k] = $this->where($k, $v);
|
|
|
}
|
|
|
}
|
|
|
+ } elseif (is_numeric($param)) {
|
|
|
+ $result['id'] = $this->where('id', $param);
|
|
|
} elseif ($param) {
|
|
|
$result['_id'] = $this->where('_id', $param);
|
|
|
} else {
|
|
@@ -297,7 +299,7 @@ class Mongo extends Base
|
|
|
}
|
|
|
return $result;
|
|
|
}
|
|
|
- private function where($key, $value)
|
|
|
+ private function where(&$key, $value)
|
|
|
{
|
|
|
$method = '';
|
|
|
if (is_array($value)) {
|
|
@@ -354,10 +356,15 @@ class Mongo extends Base
|
|
|
}
|
|
|
return $value;
|
|
|
}
|
|
|
- private function value($key, $value)
|
|
|
+ private function value(&$key, $value)
|
|
|
{
|
|
|
- if ($key == '_id' && !is_numeric($value)) {
|
|
|
- $value = new ObjectId($value);
|
|
|
+ if ($key == '_id') {
|
|
|
+ if (is_numeric($value)) {
|
|
|
+ $key = 'id';
|
|
|
+ $value = (float) $value;
|
|
|
+ } else {
|
|
|
+ $value = new ObjectId($value);
|
|
|
+ }
|
|
|
} elseif (is_numeric($value)) {
|
|
|
$value = (float) $value;
|
|
|
}
|
|
@@ -369,10 +376,9 @@ class Mongo extends Base
|
|
|
$v['_id'] = (array) $v['_id'];
|
|
|
if (isset($v['_id']['oid'])) {
|
|
|
$v['_id'] = $v['_id']['oid'];
|
|
|
- if (isset($v['id'])) {
|
|
|
- $v['oid'] = $v['id'];
|
|
|
+ if (!isset($v['id'])) {
|
|
|
+ $v['id'] = $v['_id'];
|
|
|
}
|
|
|
- $v['id'] = $v['_id'];
|
|
|
} else {
|
|
|
$v = array_merge($v['_id'], $v);
|
|
|
unset($v['_id']);
|