日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)MongoDB教程:MongoDB 自動增長

MongoDB 自動增長

MongoDB 沒有像 SQL 一樣有自動增長的功能, MongoDB 的 _id 是系統(tǒng)自動生成的12字節(jié)唯一標識。

創(chuàng)新互聯(lián)公司服務(wù)項目包括雙峰網(wǎng)站建設(shè)、雙峰網(wǎng)站制作、雙峰網(wǎng)頁制作以及雙峰網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,雙峰網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到雙峰省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

但在某些情況下,我們可能需要實現(xiàn) ObjectId 自動增長功能。

由于 MongoDB 沒有實現(xiàn)這個功能,我們可以通過編程的方式來實現(xiàn),以下我們將在 counters 集合中實現(xiàn)_id字段自動增長。


使用 counters 集合

考慮以下 products 文檔。我們希望 _id 字段實現(xiàn) 從 1,2,3,4 到 n 的自動增長功能。

{
  "_id":1,
  "product_name": "Apple iPhone",
  "category": "mobiles"
}

為此,創(chuàng)建 counters 集合,序列字段值可以實現(xiàn)自動長:

>db.createCollection("counters")

現(xiàn)在我們向 counters 集合中插入以下文檔,使用 productid 作為 key:

{
  "_id":"productid",
  "sequence_value": 0
}

sequence_value 字段是序列通過自動增長后的一個值。

使用以下命令插入 counters 集合的序列文檔中:

>db.counters.insert({_id:"productid",sequence_value:0})

創(chuàng)建 Javascript 函數(shù)

現(xiàn)在,我們創(chuàng)建函數(shù) getNextSequenceValue 來作為序列名的輸入, 指定的序列會自動增長 1 并返回最新序列值。在本文的實例中序列名為 productid 。

>function getNextSequenceValue(sequenceName){
   var sequenceDocument = db.counters.findAndModify(
      {
         query:{_id: sequenceName },
         update: {$inc:{sequence_value:1}},
         "new":true
      });
   return sequenceDocument.sequence_value;
}

使用 Javascript 函數(shù)

接下來我們將使用 getNextSequenceValue 函數(shù)創(chuàng)建一個新的文檔, 并設(shè)置文檔 _id 自動為返回的序列值:

>db.products.insert({
   "_id":getNextSequenceValue("productid"),
   "product_name":"Apple iPhone",
   "category":"mobiles"})

>db.products.insert({
   "_id":getNextSequenceValue("productid"),
   "product_name":"Samsung S3",
   "category":"mobiles"})

就如你所看到的,我們使用 getNextSequenceValue 函數(shù)來設(shè)置 _id 字段。

為了驗證函數(shù)是否有效,我們可以使用以下命令讀取文檔:

>db.products.find()

以上命令將返回以下結(jié)果,我們發(fā)現(xiàn) _id 字段是自增長的:

{ "_id" : 1, "product_name" : "Apple iPhone", "category" : "mobiles"}

{ "_id" : 2, "product_name" : "Samsung S3", "category" : "mobiles" }

當前文章:創(chuàng)新互聯(lián)MongoDB教程:MongoDB 自動增長
文章URL:http://www.5511xx.com/article/codepdp.html