Commit 497c0f30 authored by Jens Segers's avatar Jens Segers

Added skip to aggregation

parent 92754b8e
...@@ -18,12 +18,12 @@ class Builder extends \Illuminate\Database\Query\Builder { ...@@ -18,12 +18,12 @@ class Builder extends \Illuminate\Database\Query\Builder {
* @var array * @var array
*/ */
protected $conversion = array( protected $conversion = array(
'=' => '=', '=' => '=',
'!=' => '$ne', '!=' => '$ne',
'<>' => '$ne', '<>' => '$ne',
'<' => '$lt', '<' => '$lt',
'<=' => '$lte', '<=' => '$lte',
'>' => '$gt', '>' => '$gt',
'>=' => '$gte', '>=' => '$gte',
); );
...@@ -121,7 +121,8 @@ class Builder extends \Illuminate\Database\Query\Builder { ...@@ -121,7 +121,8 @@ class Builder extends \Illuminate\Database\Query\Builder {
// Apply order and limit // Apply order and limit
if ($this->orders) $pipeline[] = array('$sort' => $this->orders); if ($this->orders) $pipeline[] = array('$sort' => $this->orders);
if ($this->limit) $pipeline[] = array('$limit' => $this->limit); if ($this->offset) $pipeline[] = array('$skip' => $this->offset);
if ($this->limit) $pipeline[] = array('$limit' => $this->limit);
$results = $this->collection->aggregate($pipeline); $results = $this->collection->aggregate($pipeline);
...@@ -150,7 +151,7 @@ class Builder extends \Illuminate\Database\Query\Builder { ...@@ -150,7 +151,7 @@ class Builder extends \Illuminate\Database\Query\Builder {
// Apply order, offset and limit // Apply order, offset and limit
if ($this->orders) $cursor->sort($this->orders); if ($this->orders) $cursor->sort($this->orders);
if ($this->offset) $cursor->skip($this->offset); if ($this->offset) $cursor->skip($this->offset);
if ($this->limit) $cursor->limit($this->limit); if ($this->limit) $cursor->limit($this->limit);
// Return results // Return results
return iterator_to_array($cursor, false); return iterator_to_array($cursor, false);
......
...@@ -105,14 +105,14 @@ class Connection extends \Illuminate\Database\Connection { ...@@ -105,14 +105,14 @@ class Connection extends \Illuminate\Database\Connection {
$dsn .= "{$username}:{$password}@"; $dsn .= "{$username}:{$password}@";
} }
$dsn.= "{$host}"; $dsn .= "{$host}";
if (isset($config['port'])) if (isset($config['port']))
{ {
$dsn .= ":{$port}"; $dsn .= ":{$port}";
} }
$dsn.= "/{$database}"; $dsn .= "/{$database}";
return $dsn; return $dsn;
} }
......
...@@ -244,10 +244,20 @@ class ModelQueryTest extends PHPUnit_Framework_TestCase { ...@@ -244,10 +244,20 @@ class ModelQueryTest extends PHPUnit_Framework_TestCase {
$users = User::groupBy('age')->get(); $users = User::groupBy('age')->get();
$this->assertEquals(6, count($users)); $this->assertEquals(6, count($users));
$users = User::groupBy('age')->skip(1)->get();
$this->assertEquals(5, count($users));
$users = User::groupBy('age')->take(2)->get();
$this->assertEquals(2, count($users));
$users = User::groupBy('age')->orderBy('age', 'desc')->get(); $users = User::groupBy('age')->orderBy('age', 'desc')->get();
$this->assertEquals(37, $users[0]->age); $this->assertEquals(37, $users[0]->age);
$this->assertEquals(35, $users[1]->age); $this->assertEquals(35, $users[1]->age);
$this->assertEquals(33, $users[2]->age); $this->assertEquals(33, $users[2]->age);
$users = User::groupBy('age')->skip(1)->take(2)->orderBy('age', 'desc')->get();
$this->assertEquals(35, $users[0]->age);
$this->assertEquals(33, $users[1]->age);
} }
public function testSubquery() public function testSubquery()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment