日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB学习笔记一ID自增长

發布時間:2024/9/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB学习笔记一ID自增长 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概要

MongoDB 的_id字段作為一個主鍵存在于所有文檔的最頂層,_id必須是唯一的,而且總是具有唯一約束的索引。除了唯一約束,你可以在集合中的_id字段上使用任何值,

以下這個指南描述了在_id上創建一個自增序列的兩種方式:

Use Counter Collection

Optimistic Loop

注意事項

一般情況下,你不會愿意在_id字段,或任何字段上使用自增模式,那是因為不會有大量的文檔構成的大規模數據庫,通常情況下,更為理想的是默認_id。

實現過程

Use Counter Collection

Counter集合實現:

利用一個單獨的計數器集合去跟蹤我們使用的最后一個數字序列。該_id字段包含了序列名稱和序列字段中該序列最后的值。

1、插入計數器集合,設置初始值為userid:

?
1 2 3 4 5 6 db.counters.insert( ???{ ??????_id:?"userid", ??????seq: 0 ???} )
2、創建一個getNextSequence函數,參數為序列的name,函數使用findandmodify()方法去自動增長序列的值并返回增長之后的結果: ?
1 2 3 4 5 6 7 8 9 10 11 functiongetNextSequence(name) { ???var ret = db.counters.findAndModify( ??????????{ ????????????query: { _id:?name}, ????????????update: { $inc: { seq: 1 } }, ????????????new:?true ??????????} ???); ???returnret.seq; }
3、在接下來插入數據的時候,使用getNextSequence這個函數: ?
1 2 3 4 5 6 7 8 9 10 11 12 db.users.insert( ???{ ?????_id: getNextSequence("userid"),//注意getNextSequence參數要與計數器集合中_id值一致 ?????name:?"Sarah C." ???} ) db.users.insert( ???{ ?????_id: getNextSequence("userid"), ?????name:?"Bob D." ???} )
4、你可以試著查看結果: ?
1 db.users.find()
5、_id字段包含了自動增長序列的值: ?
1 2 3 4 5 6 7 8 { ??_id : 1, ??name:?"Sarah C." } { ??_id : 2, ??name:?"Bob D." }
findandmodify這個方法包含了更新,查詢字段并不是一定要有唯一索引,該方法可以在某些情況下多次插入同一個文檔。例如,有多個客戶端在使用同樣查詢條件時,

都調用該方法,那么調用這些方法在執行更新操作之前必須先完成查詢操作,而且這些方法能插入相同的文檔。

在計數器事例中,查詢字段是_id字段,它總是有一個獨立的索引。我們再看如下示例:

?
1 2 3 4 5 6 7 8 9 10 11 functiongetNextSequence(name) { ???var ret = db.counters.findAndModify( ??????????{ ????????????query: { _id:?name}, ????????????update: { $inc: { seq: 1 } }, ????????????new:?true, ????????????upsert:?true ??????????} ???); ???returnret.seq; }
如果多個客戶端在傳入相同參數情況下來調用getNextSequence()方法,然后我們會發現以下其中一個行為將會發生:

一次findandmodify()方法將會成功插入一條文檔;

0個或多個findandmodify()方法將會更新新插入的文件;

當它們試圖插入重復的數據時,0個或多個findandmodify()方法;

如果由于違反了唯一約束而導致方法失敗,請重試。

Optimistic Loop

略。


來源:http://blog.csdn.net/younger_z/article/details/53484779

總結

以上是生活随笔為你收集整理的MongoDB学习笔记一ID自增长的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av基地| 中文人妻熟女乱又乱精品 | 欧美高清视频在线观看 | 中文字幕有码视频 | 2021中文字幕 | 五月天激情丁香 | 网站免费黄色 | aaa在线播放| 高清国产一区二区三区 | 天天插插 | 午夜综合网 | 激情婷婷综合网 | 国产午夜电影在线观看 | 免费一级a毛片 | 永久免费在线视频 | www一区二区三区 | 国产大片中文字幕 | 日韩三级一区二区三区 | 亚州av在线 | 黄色在线观看免费视频 | 国产一区不卡在线观看 | 欧美毛片免费看 | 香蕉黄色片 | 日本丰满大乳奶做爰 | 不卡中文字幕在线观看 | 嫩操影院| 天天爱av | 五月婷婷一区二区三区 | 日韩在线 | 99久久精品久久久久久清纯 | 国产成人精品女人久久久 | 黄色精品免费 | 日韩精品专区 | 亚洲av无码国产精品久久不卡 | 欧美久久久久久 | 手机在线观看av片 | 国产中文欧美日韩在线 | 夜夜春影院 | 国产午夜福利100集发布 | 精品久久久av | 欧美日韩一区二区在线播放 | 骚虎av | 国产精品无码粉嫩小泬 | 亚洲综合激情 | 老司机精品福利导航 | 青青操网站 | 久久久久久久久久久久久国产 | 青青草国产一区二区三区 | 一区二区乱子伦在线播放 | 国产精品婷婷 | 男人狂揉女人下部视频 | 男人天堂亚洲天堂 | 黄色三级免费网站 | 亚洲乱强伦 | 精品人妻aV中文字幕乱码色欲 | 在线成年人视频 | 欧美与黑人午夜性猛交久久久 | 玖玖久久 | 国产精品久久久久久久久久辛辛 | 国偷自产视频一区二区久 | 国产精品中文字幕在线 | 中文字幕视频网站 | 在线免费观看网站入口在哪 | 欧美成人三级在线播放 | 美女在线观看视频 | 97免费在线观看 | 美女尿尿网站 | 国产精品视频一区二区三区 | 国产一区二区精品丝袜 | 爱福利视频网 | jlzzjlzz亚洲女人 | 欧美无人区码suv | 无码人妻精品一区二区三区99不卡 | 午夜在线精品 | 免费黄色激情视频 | 欧美大尺度床戏做爰 | 国产嫩草av | 一级黄色片在线免费观看 | 怡春院一区二区 | 色狠狠综合| 日韩在线电影一区二区 | 日本不卡高字幕在线2019 | 在线成人免费 | 亚洲欧美激情小说另类 | 精品成人中文无码专区 | 精品欧美一区二区三区免费观看 | 国产精品久久久久久久一区二区 | 日本熟妇成熟毛茸茸 | 免费看日批视频 | 中文字幕日韩久久 | 天天躁夜夜躁 | 狠狠艹狠狠干 | 性综艺节目av在线播放 | 亚洲精品国产精品国自产在线 | 一本色道久久加勒比精品 | 久久久这里有精品 | 亚洲免费在线看 | 强伦轩人妻一区二区电影 | 亚洲小说网 |