mongodb php auto increment 自增

php中文网
发布: 2016-06-07 16:39:20
原创
1491人浏览过

mongodb的自增实现根oracle,postgresql是差不多,都是通过计数器来实现的. oracle自增实现: 实例说明oracle序列用法 postgresql自增实现:? postgresql auto_increment 实现 通用方法 1,mongodb命令行下实现auto_increment db.counters.insert( //计数器表 { _

mongodb的自增实现根oracle,postgresql是差不多,都是通过计数器来实现的.

oracle自增实现: 实例说明oracle序列用法

postgresql自增实现:?postgresql auto_increment 实现 通用方法

1,mongodb命令行下实现auto_increment

自动填充插件JQuery Cool Auto-Suggest
自动填充插件JQuery Cool Auto-Suggest

自动填充插件JQuery Cool Auto-Suggest

自动填充插件JQuery Cool Auto-Suggest 24
查看详情 自动填充插件JQuery Cool Auto-Suggest
> db.counters.insert(             //计数器表
       {
            _id: "userid",
            seq: 0
       }
    );
WriteResult({ "nInserted" : 1 })
> db.counters.find();
{ "_id" : "userid", "seq" : 0 }
> function getNextSequence(name) {      //取下个ID的函数
   var ret = db.counters.findAndModify(
       {
           query: { _id: name },
           update: { $inc: { seq: 1 } },  //这里seq就是上面counters表中的seq字段
           new: true,
           upsert: true
        }
   );
   return ret.seq;
 };
> db.users.insert(       //插入数据
      {
           _id: getNextSequence("userid"),
           name: "tank"
      }
 );
WriteResult({ "nInserted" : 1 })
> db.users.find();     //查看
{ "_id" : 1, "name" : "tank" }
> db.users.insert(
      {
           _id: getNextSequence("userid"),
           name: "test"
      }
 );
WriteResult({ "nInserted" : 1 })
> db.users.find();
{ "_id" : 1, "name" : "tank" }
{ "_id" : 2, "name" : "test" }
登录后复制

2,php实现auto_increment

立即学习PHP免费学习笔记(深入)”;

function getNextId($mongo,$name,$param=array()){
     $param += array(   //默认ID从1开始,间隔是1
       'init' => 1,
       'step' => 1,
     );
     $update = array('$inc'=>array('id'=>$param['step']));   //设置间隔
     $query = array('name'=>$name);
     $command = array(
        'findandmodify' => 'ids',
        'update' => $update,
        'query' => $query,
        'new' => true
     );
     $id = $mongo->db->command($command);
     if (isset($id['value']['id'])) {
        return $id['value']['id'];
     }else{
        $mongo->insert(array(
           'name' => $name,
           'id' => $param['init'],     //设置ID起始数值
        ));
        return $param['init'];
    }
} 
$mongo = new Mongo();
$curDB = $mongo->selectCollection('test', 'ids');     //test库中的ids表
$user = $mongo->selectCollection('test', 'users');      //test库中的users表
$id = getNextId($curDB,'userid',array('init'=>10000,'step'=>2));   //取得下一条数据的ID
$obj = array("_id"=>$id,"name"=>"tankzhang");
$user->insert($obj);   //插入数据
登录后复制
相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号