Как создать новый порядковый номер автоматического увеличения с начальным номером в mongodb 2.6 и jensseger laravel?

Есть ли способ создать новый порядковый номер из начального номера по умолчанию, используя «findAndModify» в пакетах jenssegers laravel 5.1 и mongoDB 2.6 или хотя бы в mongo 2.6?

У меня есть коллекция счетчиков, и я помещаю в нее все свои автоматические счетчики приращений. И теперь мне нужно сбрасывать порядковый номер на 100000 каждый финансовый год.

Например

В этом году (15-16) счетчик запустился со 100 000 и увеличил 12K записей и достиг 112 000.

Теперь в следующем году счетчик должен начинаться с 100 000. Для автоматического увеличения я использовал следующий код.

public function getNextSequence($name) {
$retval = DB::getCollection('my_counts')->findAndModify(
array('_id' => $name), array('$inc' => array('seq' => 1)), null,
array('new' => true, 'upsert' => true)
);
return (int) $retval['seq'];
}

и данные в сборе, как показано ниже.

введите описание изображения здесь

поэтому на изображении выше «grants_15-16» — последовательность текущего года. Теперь, когда наступит 16-17, я перейду как «grants_16-17». Таким образом, это значение не существует в коллекции, и Монго создаст его. Но проблема здесь в том, что «seq» начинается с «1». Но я хочу, чтобы это началось с «100000».

Поэтому я изменил код, как показано ниже.

public function getNextSequence($name) {
$retval = DB::getCollection('test_counters')->findAndModify(
array('_id' => $name), array('$setOnInsert' => array('seq' => 100000),
'$inc' => array('seq' => 1)),
null, array('new' => true, 'upsert' => true)
);
return (int) $retval['seq'];
}

но он возвращает ошибку, как показано ниже.

введите описание изображения здесь

Я искал решение, но бесполезно. Пожалуйста, помогите с этим.

Заранее спасибо.

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]