MongoDB自增主键id生成器

参考地址:

http://www.runoob.com/mongodb/mongodb-atomic-operations.html

mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。

但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。

所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。

原子操作:

$inc

$inc可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作。


php方法,会自动生成一张集合

function autoId($name, $db){
	   	$update = array('$inc'=>array("id"=>1));
	   	$query = array('name'=>$name);
	   	$command = array(
	   			'findandmodify'=>'autoIds', 'update'=>$update,
	   			'query'=>$query, 'new'=>true, 'upsert'=>true
	   	);
	   	$id = $db->command($command);
	   	return $id['value']['id'];
   }


demo:

 // 连接到mongodb
   $m = new MongoClient();
   $db = $m->myblog;
   $collection = $db->createCollection("blog");
   $collection = $db->blog;
   
   //自动ID
   $id =  autoId('blog', $db);
   $document = array(
   		"id"	=> $id,
   		"title" => "MongoDB",
   		"description" => "database",
   		"likes" => 100,
   		"url" => "http://www.w3cschool.cc/mongodb/",
   		"by", "w3cschool.cc"
   );  
   $collection->insert($document);


转载于:https://my.oschina.net/lockupme/blog/650734

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值