Laravel-mongodb: can't use findAndModify after upgrade to 3.0

Created on 11 Feb 2016  路  2Comments  路  Source: jenssegers/laravel-mongodb

I want ceate Auto-Incrementing Sequence for _ID Field , need use findAndModify command , may this not support, hope you add, thanks!

ErrorException in Collection.php line 41:
call_user_func_array() expects parameter 1 to be a valid callback, class 'MongoDB\Collection' does not have a method 'findAndModify'

263

public static function getNextSequence( $collection )
    {
           $seq = DB::getCollection('_data_counters')->findAndModify(
                array('_id' => $collection),
                array('$inc' => array('seq' => 1)),
                null,
                array('new' => true, 'upsert' => true)
           );

           return $seq['seq'];

    }

All 2 comments

has fixed , thank your very much sir.

use \MongoDB\Operation\FindOneAndUpdate;

public static function getNextSequence( $collection )
    {
           $seq = DB::getCollection('_data_counters')->findOneAndUpdate(
                array('_id' => $collection),
                array('$inc' => array('seq' => 1)),
                array('new' => true, 'upsert' => true, 'returnDocument' => FindOneAndUpdate::RETURN_DOCUMENT_AFTER)
           );
           return $seq -> seq;
}
Was this page helpful?
0 / 5 - 0 ratings