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


Posted in PHP onMarch 23, 2015

本文实例讲述了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:"https://3water.com/ "});

//查看结果

> 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'=>'https://3water.com/ '
));
$conn->close();
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
将数字格式的计算结果转为汉字格式
Oct 09 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
php比较两个字符串长度的方法
Jul 13 PHP
php 运算符与表达式详细介绍
Nov 30 PHP
php中this关键字用法分析
Dec 07 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
PHP中散列密码的安全性分析
Jul 26 PHP
浅谈laravel中的关联查询with的问题
Oct 10 PHP
php实现约瑟夫问题的方法小结
Mar 23 #PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 #PHP
PHP贪婪算法解决0-1背包问题实例分析
Mar 23 #PHP
PHP回溯法解决0-1背包问题实例分析
Mar 23 #PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 #PHP
php找出指定范围内回文数且平方根也是回文数的方法
Mar 23 #PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 #PHP
You might like
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
可以将word转成html的js代码
2010/04/11 Javascript
jquery 学习之二 属性(类)
2010/11/25 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
jquery实现兼容IE8的异步上传文件
2015/06/15 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
python同时替换多个字符串方法示例
2019/09/17 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
聊聊python中的异常嵌套
2020/09/01 Python
python中PyQuery库用法分享
2021/01/15 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
市场营销专业毕业生求职信
2014/03/26 职场文书
法语专业求职信
2014/07/20 职场文书
房屋出租委托书格式
2014/09/23 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫