• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mongodb php auto increment 自增

mysql 搞代码 4年前 (2022-01-09) 11次浏览 已收录 0个评论

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

> 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

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' =<strong>本文来源gaodai#ma#com搞@@代~&码*网2</strong>> $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);   //插入数据

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mongodb php auto increment 自增
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址