天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

在MongoDB中模擬Auto Increment的php代碼

代碼大致如下所示:
復制代碼 代碼如下:
<?php
function generate_auto_increment_id($namespace, array $option = array())
{
$option += array(
'init' => 1,
'step' => 1,
);
$instance = new Mongo();
$instance = $instance->selectCollection('_seq', 'seq');
$seq = $instance->db->command(array(
'findAndModify' => 'seq',
'query' => array('_id' => $namespace),
'update' => array('$inc' => array('id' => $option['step'])),
'new' => true,
));
if (isset($seq['value']['id'])) {
return $seq['value']['id'];
}
$instance->insert(array(
'_id' => $namespace,
'id' => $option['init'],
));
return $option['init'];
}
var_dump(generate_auto_increment_id('foo'));
var_dump(generate_auto_increment_id('bar', array('init' => 123)));
?>

其具體實現方式主要是利用MongoDB中findAndModify命令,只要每次往MongoDB里insert對象前生成ID賦值給_id就OK了,因為它的實現滿足原子性,所以不存在并發問題。

另外說明一點,findAndModify本身提供了一個upsert參數,為true的話可以自動insert,但那樣就不能自定義初始值了,所以文中示例沒有使用upsert。

BTW,數據庫“_seq”的名字以下劃線開頭,這樣列表的時候會排在前面,更容易分辨些。

參考:Auto Increment with MongoDB

php技術在MongoDB中模擬Auto Increment的php代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美亚洲国内日韩自拍视频 | 搞av.com| 国产婷婷午夜无码A片 | 被老师按在办公桌吸奶头 | 色欲AV人妻精品麻豆AV | 国产在线观看www鲁啊鲁免费 | 高中生被C到爽哭视频免费 高挑人妻无奈张开腿 | 欧美美女论坛 | 纲手胸被爆羞羞免费 | 成人国产精品视频频 | 嫩草AV久久伊人妇女 | 在线超碰免费视频观看 | 欧美成人精品高清在线观看 | 高清AV熟女一区 | 韩国演艺圈悲惨在线 | 人人干人人爽 | 亚洲色播永久网址大全 | 最近日本免费观看MV免费 | 国产高清美女一级a毛片久久w | 中文字幕亚洲欧美日韩2o19 | 国产日韩欧美高清免费视频 | 涩涩999| 亚洲免费黄色片 | 日韩欧美中文字幕在线 | 98久久无码一区人妻A片蜜 | 美女裸露胸部100%无遮挡 | 国产91无毒不卡在线观看 | 免费特黄一区二区三区视频一 | 国产又爽又黄又不遮挡视频 | 无码人妻少妇色欲AV一区二区 | 狂野猛交xxxx吃奶 | 国产免费毛片在线观看 | 22eee在线播放成人免费视频 | 久久人妻少妇嫩草AV無碼 | 伊人久久精品99热超碰 | 纯h超级大尺度小黄文 | 四虎永久在线精品国产 | 国产成年网站v片在线观看 国产成年人在线观看 | 俄罗斯美女啪啪 | 国产精品欧美一区二区在线看 | 日韩欧美成人免费中文字幕 |