Mongo query "IN" condition shortcut syntax added.

This commit is contained in:
Klimov Paul
2013-11-28 20:36:38 +02:00
parent a038449801
commit dc3ada65a5
2 changed files with 8 additions and 4 deletions

View File

@ -242,7 +242,13 @@ class Collection extends Object
if (is_numeric($key)) { if (is_numeric($key)) {
$result[] = $actualValue; $result[] = $actualValue;
} else { } else {
$result[$this->normalizeConditionKeyword($key)] = $actualValue; $key = $this->normalizeConditionKeyword($key);
if (strncmp('$', $key, 1) !== 0 && array_key_exists(0, $actualValue)) {
// shortcut for IN condition
$result[$key]['$in'] = $actualValue;
} else {
$result[$key] = $actualValue;
}
} }
} }
return $result; return $result;

View File

@ -75,9 +75,7 @@ class QueryRunTest extends MongoTestCase
$query = new Query; $query = new Query;
$rows = $query->from('customer') $rows = $query->from('customer')
->where([ ->where([
'name' => [ 'name' => ['name1', 'name5']
'in' => ['name1', 'name5']
]
]) ])
->all($connection); ->all($connection);
$this->assertEquals(2, count($rows)); $this->assertEquals(2, count($rows));