最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mongodbphpautoincrement自增

来源:动视网 责编:小采 时间:2020-11-09 13:03:30
文档

mongodbphpautoincrement自增

mongodbphpautoincrement自增:mongodb的自增实现根oracle,postgresql是差不多,都是通过计数器来实现的. oracle自增实现: 实例说明oracle序列用法 postgresql自增实现: postgresql auto_increment 实现 通用方法 1,mongodb命令行下实现auto_increment db.c
推荐度:
导读mongodbphpautoincrement自增:mongodb的自增实现根oracle,postgresql是差不多,都是通过计数器来实现的. oracle自增实现: 实例说明oracle序列用法 postgresql自增实现: postgresql auto_increment 实现 通用方法 1,mongodb命令行下实现auto_increment db.c


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' => $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); //插入数据

文档

mongodbphpautoincrement自增

mongodbphpautoincrement自增:mongodb的自增实现根oracle,postgresql是差不多,都是通过计数器来实现的. oracle自增实现: 实例说明oracle序列用法 postgresql自增实现: postgresql auto_increment 实现 通用方法 1,mongodb命令行下实现auto_increment db.c
推荐度:
标签: php auto db
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top