Skip to content

Commit e9db9c8

Browse files
committed
Fix issue using chunkById with ObjectIDs.
1 parent e3772a7 commit e9db9c8

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/Jenssegers/Mongodb/Eloquent/Builder.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,14 @@ public function decrement($column, $amount = 1, array $extra = [])
143143
return parent::decrement($column, $amount, $extra);
144144
}
145145

146+
/**
147+
* @inheritdoc
148+
*/
149+
public function chunkById($count, callable $callback, $column = '_id', $alias = null)
150+
{
151+
return parent::chunkById($count, $callback, $column, $alias);
152+
}
153+
146154
/**
147155
* @inheritdoc
148156
*/

src/Jenssegers/Mongodb/Query/Builder.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,28 @@ public function decrement($column, $amount = 1, array $extra = [], array $option
600600
return $this->increment($column, -1 * $amount, $extra, $options);
601601
}
602602

603+
/**
604+
* @inheritdoc
605+
*/
606+
public function chunkById($count, callable $callback, $column = '_id', $alias = null)
607+
{
608+
return parent::chunkById($count, $callback, $column, $alias);
609+
}
610+
611+
/**
612+
* @inheritdoc
613+
*/
614+
public function forPageAfterId($perPage = 15, $lastId = 0, $column = '_id')
615+
{
616+
// When using ObjectIDs to paginate, we need to use a hex string as the
617+
// "minimum" ID rather than the integer zero so the '$lt' query works.
618+
if ($column === '_id' && $lastId === 0) {
619+
$lastId = '000000000000000000000000';
620+
}
621+
622+
return parent::forPageAfterId($perPage, $lastId, $column);
623+
}
624+
603625
/**
604626
* @inheritdoc
605627
*/

0 commit comments

Comments
 (0)