>백엔드 개발 >PHP 튜토리얼 >MongoDB에서 자동 증가를 시뮬레이션하는 PHP 코드

MongoDB에서 자동 증가를 시뮬레이션하는 PHP 코드

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-07-29 08:44:31856검색

대지대치여하 소시 , array $option = array())
{

$option = array( 'init' => 1, 'step' => 1, ); $instance = new Mongo();

$instance = $instance->selectCollection('_seq', 'seq');

$seq = $instance->db->command(array(
'findAndModify' => 'seq',
'query' => array('_id' => $namespace),
'update' => array('$inc' = > array('id' => $option['step'])),
'new' => true,
));
if (isset($seq['value') ]['id'])) {
return $seq['value']['id'];
}
$instance->insert(array(
'_id' => $namespace,
'id' => $option['init'],
));
return $option['init'];
}
var_dump(generate_auto_increment_id( 'foo'));
var_dump(generate_auto_increment_id('bar', array('init' => 123)));
?>



实现方式 주요시이용 MongoDB중 findAndModify명령, 只要每次往MongoDB里insert对象前生成ID赋值给_id就OK了、因为它的实现满足原子性、所以不存在叶发问.

另外说明一点, findAndModify 본신 제공 료一个upsert참수, 为true的话可以自动insert, 那样就不不自定义初始值了,所以文中示例没有使用upsert.

BTW, 수계록 “_seq”적 성자 이하 划线开头, 这样列 표적 후후 배재 전면, 보다 용이한 분부료.

참고: Auto Increment with MongoDB


이상 취개 绍了monde 在MongoDB中模拟Auto Increment的php代码,包括了monde방면적 내용,희망창 PHP교정 유兴趣的朋友有所帮助.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.