이 기사의 예에서는 PHP가 Mongodb의 사용자 정의 메소드를 구현하여 자체 증가 ID를 생성하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
//먼저 자동 증가하는 ID 컬렉션 ID를 생성합니다
>db.ids.save({이름:"사용자", ID:0});
//성공 여부를 확인할 수 있습니다
>db.ids.find();
{ "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "사용자", "id" : 0 }
//그런 다음 새 사용자를 추가하기 전에 매번 ID 컬렉션을 늘리고 ID를 가져옵니다
>userid = db.ids.findAndModify({update:{$inc:{'id':1}}, 쿼리:{"name":"user"}, new:true});
{ "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "사용자", "id" : 1 }
//참고: findAndModify는 업데이트와 검색이라는 두 가지 작업을 완료하는 메서드이므로 원자적이며 멀티스레딩이 충돌하지 않습니다.
//해당 데이터를 저장합니다
>db.user.save({uid:userid.id, 사용자 이름:"kekeles", 비밀번호:"kekeles", 정보:"http://www.jb51.net/ "});
//결과 보기
>db.user.find();
{ "_id" : ObjectId("4c637f79900f00000000686d"), "uid" : 1, "username" : "admin", "password" : "admin" }
//이것은 mongo 셸입니다. 서버측 프로그램인 java php python을 사용하는 경우 이러한 작업을 직접 캡슐화할 수 있으며 자동 증가된 ID를 반환하기 위해 몇 가지 매개변수만 전달하면 됩니다. 또한 교차를 구현할 수도 있습니다. -Oracle의 Auto-increment ID와 같은 테이블 처리.
저는 PHP를 직접 작성하여 모든 사람과 공유했습니다.
<?php
function mid($name, $db){
$update = array('$inc'=>array("id"=>1));
$query = array('name'=>$name);
$command = array(
'findandmodify'=>'ids', 'update'=>$update,
'query'=>$query, 'new'=>true, 'upsert'=>true
);
$id = $db->command($command);
return $id['value']['id'];
}
$conn = new Mongo();
$db = $conn->idtest;
$id = mid('user', $db);
$db->user->save(array(
'uid'=>$id,
'username'=>'kekeles',
'password'=>'kekeles',
'info'=>'http://www.jb51.net/ '
));
$conn->close();
?>
로그인 후 복사
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.