php实现Mongodb自定义方式生成自增ID的方法_php技巧

本文实例讲述了php实现Mongodb自定义方式生成自增ID的方法。分享给大家供大家参考。具体分析如下:

复制代码 代码如下:

//首先创建一个自动增长id集合 ids
>db.ids.save({name:"user", id:0});
//可以查看一下是否成功
> db.ids.find();
{ "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id" : 0 }
//然后每次添加新用户之前自增一下 ids集合 获得id
>userid = db.ids.findAndModify({update:{$inc:{'id':1}}, query:{"name":"user"}, new:true});
{ "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id" : 1 }
//注:因为findAndModify是一个方法完成更新查找两个操作,所以具有原子性,多线程不会冲突。
//然后保存相应的数据
>db.user.save({uid:userid.id, username:"kekeles", password:"kekeles", info:"http://www.jb51.net/ "});
//查看结果
> db.user.find();
{ "_id" : ObjectId("4c637f79900f00000000686d"), "uid" : 1, "username" : "admin", "password" : "admin" }
//这是mongo的shell,如果用的是服务器端程序java php python,可以自己对这些操作封装一下,只用传几个参数就可以返回自增的id,还可以实现像Oracle的跨表的自增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程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, mongodb
, 方法
, 自定义
, 生成
, 自增id
方式
mongodb id自增、mongodb 自增、mongodb 自增id实现、mongodb 自增字段、java mongodb id自增,以便于您获取更多的相关知识。

时间: 2024-11-02 19:51:54

php实现Mongodb自定义方式生成自增ID的方法_php技巧的相关文章

php实现Mongodb自定义方式生成自增ID的方法

 这篇文章主要介绍了php实现Mongodb自定义方式生成自增ID的方法,实例分析了Mongodb自增字段的实现技巧与对应php操作方法,需要的朋友可以参考下     本文实例讲述了php实现Mongodb自定义方式生成自增ID的方法.分享给大家供大家参考.具体分析如下: 代码如下: //首先创建一个自动增长id集合 ids >db.ids.save({name:"user", id:0}); //可以查看一下是否成功 > db.ids.find(); { "_i

PHP生成不重复标识符的方法_php技巧

本文实例讲述了PHP生成不重复标识符的方法.分享给大家供大家参考.具体实现方法如下: 生成唯一不重复的标识我们主要是根据当前的一个时间time然后再转换在md5值,这样几乎是可以保证标签的唯一性,下面整理了一些关于PHP生成不重复标识符程序代码,感兴趣的朋友可以来看一下 PHP倒是自带了生成唯一id的函数:uniqid() ,它是基于当前时间微秒数的,用法如下: 复制代码 代码如下: echo uniqid(); //13位的字符串 echo uniqid("php_"); //当然你

php生成年月日下载列表的方法_php技巧

本文实例讲述了php生成年月日下载列表的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function mdy($mid = "month", $did = "day", $yid = "year", $mval, $dval, $yval) {   if(empty($mval)) $mval = date("m");   if(empty($dval)) $dval = date("d&q

PHP自定义函数获取搜索引擎来源关键字的方法_php技巧

本文实例讲述了PHP自定义函数获取搜索引擎来源关键字的方法.分享给大家供大家参考,具体如下: 获取搜索引擎来源关键字的函数: function getKeywords() { // 搜索引擎关键字映射 static $host_keyword_map = array( 'www.baidu.com' => 'wd', 'v.baidu.com' => 'word', 'image.baidu.com' => 'word', 'news.baidu.com' => 'word', '

php通过递归方式复制目录和子目录的方法_php技巧

本文实例讲述了php通过递归方式复制目录和子目录的方法.分享给大家供大家参考.具体实现方法如下: <?php function recurse_copy($src,$dst){ $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $fil

php绘图之生成饼状图的方法_php技巧

本文实例讲述了php绘图之生成饼状图的方法.分享给大家供大家参考.具体如下: 这里要实现的功能是人口分布比例图,由扇形组成一个圆,每个扇形颜色不一样. 复制代码 代码如下: <?php $array = array("北京"=>1925,"上海"=>2016,"广州"=>1256,"深圳"=>980); $arr_key = array_keys($array); $color = array()

PHP自定义函数获取汉字首字母的方法_php技巧

本文实例讲述了PHP自定义函数获取汉字首字母的方法.分享给大家供大家参考,具体如下: 首字母很重要,可以进行排序使用. 城市列表等等. <?php /* * Created on 2016-12-1 */ function getFirstCharter($str) { if (empty($str)) { return ''; } $fchar = ord($str{0}); if ($fchar >= ord('A') && $fchar <= ord('z')) r

php生成curl命令行的方法_php技巧

本文实例讲述了php生成curl命令行的方法.分享给大家供大家参考,具体如下: 示例: curl "http://localhost/other/serverInfo.php?dd=ddd" -H "Host:localhost" -H "Connection:keep-alive" -H "Cache-Control:max-age=0" -H "Accept:text/html,application/xhtml

3种php生成唯一id的方法_php技巧

小编在网上查了许多关于php生成唯一id方法的文章,发现有很多的方法,特整理本文与大家分享php生成唯一id的解决方法,希望大家喜欢. 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数".