天天躁日日躁狠狠躁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代碼,轉載需保留來源!

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

主站蜘蛛池模板: 99re久久免费热在线视频手机 | 国产乱人视频在线观看 | 3D动漫网站HOXXXxes | 一本色道久久88综合日韩精品 | 美女被抽插到哭内射视频免费 | 99精品国产电影 | 大桥未久电影在线观看 | 黑兽在线观看高清在线播放樱花 | 成人免费在线观看 | 俄罗斯性孕妇孕交 | FREECHINESE东北女人真爽 free18sex性自拍裸舞 | 国产WW高清大片免费看 | 欧美乱码伦视频免费66网 | 亚洲AV久久婷婷蜜臀无码不卡 | 国产成人精品视频免费大全 | 欧美白人战黑吊 | 超碰日韩人妻高清视频 | 色影音先锋av资源网 | 高清欧美videos sexo | 快播在线电影网站 | 国产精品色欲AV亚洲三区软件 | 久久综合给会久久狠狠狠 | chinese黑人第一次 | 忘忧草在线影院WWW日本动漫 | 色老板美国在线观看 | 国产在线高清视频 | 久久国产乱子伦精品免费不卡 | 91蜜桃视频 | 色欲蜜臀AV免费视频 | 99综合之综合久久伊人 | 国产骚妇BB网 | 四虎国产精品永久一区高清 | 亚洲AV无码乱码A片无码蜜桃 | 久久777国产线看观看精品卜 | 色久天| 原神美女被超污app 御姐被吸奶 | 久草在线精彩免费视频 | 美国一级大黄一片免费的网站 | adc影院欢迎您大驾光临入口 | 亚洲色图激情文学 | 久久99国产精品自在自在 |