亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

Mongodb自增id實現方法

2020-10-29 18:48:53
字體:
來源:轉載
供稿:網友

本文實例講述了Mongodb自增id實現方法。分享給大家供大家參考,具體如下:

首先創建一個自動增長id集合 ids

>db.ids.save({name:"user", id:0});

可以查看一下是否成功

> db.ids.find();{ "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id" : 0 }

然后每次添加新用戶之前自增一下 ids集合 獲得id

然后每次在db.user集合里添加新用戶之前 在db.ids集合中的name="user"文檔的id值加1返回文檔

>userid = db.ids .findAndModify({update:{$inc:{'id':1}}, query:{"name":"user"}, new:true});{ "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id" : 1 }

注:因為findAndModify是一個方法完成更新查找兩個操作,所以具有原子性,多線程不會沖突。

然后保存相應的數據

>db.user .save({uid:userid.id, username:"dotcoo", password:"dotcoo", info:"http://www.49028c.com/ "});// --------- update 2011-03-27 13:11 ------------------------

其實上邊兩行可以寫為一步

>db.user .save({  uid: db.ids .findAndModify({    update:{$inc:{'id':1}},    query:{"name":"user"},    new:true}).id, //讓db.ids集合中的name="user"文檔的id值加1并返回充當自增id  username: "dotcoo",  password:"dotcoo",  info:"http://www.49028c.com/  "});// --------- update 2011-03-27 13:11 ------------------------

查看結果

> db.user.find();{ "_id" : ObjectId("4c637f79900f00000000686d"), "uid" : 1, "username" : "admin", "password" : "admin" }

這是mongo的shell,如果用的是服務器端程序Java php Python,可以自己對這些操作封裝一下,只用傳幾個參數就可以返回自增的id,還可以實現像Oracle的跨表的自增id。

自己寫了一段php的,拿出來給大家分享。

<?phpfunction mid($name, $db){  $update = array('$inc'=>array("id"=>1));  $query = array('name'=>$name);  $command = array(      'findandmodify'=>'ids', 'update'=>$update,      'query'=>$query, 'new'=>true, 'upsert'=>true  );  $id = $db->command($command);  return $id['value']['id'];}$conn = new Mongo();$db = $conn->idtest;$id = mid('user', $db);$db->user->save(array('uid'=>$id, 'username'=>'kekeles', 'password'=>'kekeles', 'info'=>'http://www.49028c.com/ '));$conn->close();?>

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

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

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

希望本文所述對大家MongoDB數據庫程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美腿一区在线看| 国产成人精品视频| 在线精品视频视频中文字幕| 国产偷国产偷亚洲清高网站| 欧美高清理论片| 国产丝袜高跟一区| 欧美精品在线免费观看| 在线色欧美三级视频| 久久久亚洲影院| 中文字幕日韩欧美精品在线观看| 亚洲天堂男人的天堂| 欧美老女人bb| 日本在线观看天堂男亚洲| 久久久久久国产免费| 亚洲国产精品女人久久久| 久久精品99久久久久久久久| 国产成人一区二区| 久久国产精品影片| 精品成人乱色一区二区| 亚洲欧美激情四射在线日| 国产精品免费观看在线| 日韩欧美一区二区三区久久| 欧美激情视频一区二区三区不卡| 蜜臀久久99精品久久久久久宅男| 国产精品劲爆视频| 欧美视频在线看| 欧美孕妇孕交黑巨大网站| 久久精品亚洲国产| 色香阁99久久精品久久久| 亚洲黄色片网站| 国产精品热视频| 91高潮在线观看| 日韩专区中文字幕| 欧美多人乱p欧美4p久久| 亚洲欧美综合另类中字| 欧美视频国产精品| 亚洲成人xxx| 超碰日本道色综合久久综合| 国产噜噜噜噜噜久久久久久久久| 国产999精品久久久影片官网| 日产日韩在线亚洲欧美| 欧美在线中文字幕| 精品调教chinesegay| 精品国产乱码久久久久久天美| 国产精品毛片a∨一区二区三区|国| 精品视频偷偷看在线观看| 91久久精品一区| 色偷偷噜噜噜亚洲男人| 日韩精品视频在线观看免费| www.亚洲一区| 欧美成人小视频| 日韩网站免费观看| 久久九九精品99国产精品| 中国日韩欧美久久久久久久久| 精品亚洲精品福利线在观看| 国产999精品久久久影片官网| 亚洲国产精品久久精品怡红院| 日韩中文字幕网站| 在线观看欧美成人| 成人午夜激情免费视频| 久久精品91久久久久久再现| 久久精品免费电影| 成人国内精品久久久久一区| 欧美精品18videos性欧| 亚洲国产欧美一区| 超碰日本道色综合久久综合| 97香蕉久久超级碰碰高清版| 亚洲欧美999| 日韩欧美中文免费| 日韩av在线免播放器| 最近免费中文字幕视频2019| 亚洲精品视频在线观看视频| 日韩福利视频在线观看| 中文字幕最新精品| 国产精品爽黄69天堂a| 亚洲乱码一区二区| 亚洲精品黄网在线观看| 日韩中文字幕在线观看| 国产亚洲福利一区| 亚洲精品成人网| 久久久久久久影院| 福利二区91精品bt7086| 国产精品久久久久久久久免费| 亚洲激情在线观看| 91精品视频在线播放| 国产精品99久久久久久久久久久久| 2019中文字幕免费视频| 亚洲一区二区久久| 91精品视频免费看| 日韩av电影手机在线观看| 欧美肥老太性生活视频| 日韩国产欧美精品一区二区三区| 亚洲免费电影一区| 久久韩剧网电视剧| 久久国产精品久久久久久久久久| 亚洲人在线观看| 欧美性猛交xxxx黑人猛交| 国产欧美精品久久久| 欧美激情久久久久| 国产97在线|日韩| 神马久久久久久| 亚洲精品视频播放| 国产精品视频色| 日产日韩在线亚洲欧美| 2019av中文字幕| 欧美黑人又粗大| 欧美洲成人男女午夜视频| 欧美尤物巨大精品爽| 日韩欧美中文在线| 国产精品av在线播放| 亚洲视频在线免费观看| 欧美性高跟鞋xxxxhd| 一区三区二区视频| 国产91精品高潮白浆喷水| 国产91精品黑色丝袜高跟鞋| 91精品中文在线| 国产精品扒开腿做爽爽爽男男| 欧洲中文字幕国产精品| 国产精品网址在线| 欧美又大又硬又粗bbbbb| 亚洲综合日韩在线| 国产精品aaaa| 91成人免费观看网站| 性色av一区二区三区在线观看| 欧美成人高清视频| 992tv成人免费视频| 91香蕉嫩草神马影院在线观看| 日韩综合视频在线观看| 555www成人网| 欧美一区三区三区高中清蜜桃| 久久久综合av| 亚洲大胆人体在线| 久久久久久久一| 欧美在线观看一区二区三区| 成人精品一区二区三区| 91成人在线播放| 欧美极品少妇全裸体| 91亚洲永久免费精品| 成人观看高清在线观看免费| 久久色免费在线视频| 欧美精品videosex牲欧美| 精品国产乱码久久久久久天美| 国产成人综合一区二区三区| 久久久久女教师免费一区| 97国产精品久久| 久久久免费在线观看| 欧美黄色小视频| 97香蕉久久超级碰碰高清版| 欧美成人免费小视频| 亚洲精品视频免费在线观看| 国产精品爽爽爽爽爽爽在线观看| 国产成人精彩在线视频九色| 国产精品美女久久久久av超清| 456国产精品| 日韩风俗一区 二区| 色无极亚洲影院| 亚洲va久久久噜噜噜| 国产精品黄色影片导航在线观看| 成人免费看黄网站| 亚洲有声小说3d| 国产噜噜噜噜久久久久久久久| 国产精品7m视频| 日韩一区二区福利| 日韩在线视频线视频免费网站|