<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # MongoDB 自動增長 MongoDB 沒有像 SQL 一樣有自動增長的功能, MongoDB 的 _id 是系統自動生成的12字節唯一標識。 但在某些情況下,我們可以需要實現 ObjectId 實現自動增長功能。 由于 MongoDB 沒有實現這個功能,我們可以通過編程的方式來實現,以下我們將在 counters 集合中實現_id字段自動增長。 ## 使用 counters 集合 考慮以下 products 文檔。我們希望 _id 字段實現 從 1,2,3,4 到 n 的自動增長功能。 ``` { "_id":1, "product_name": "Apple iPhone", "category": "mobiles" } ``` 為此,創建 counters 集合,序列字段值可以實現自動長: ``` >db.createCollection("counters") ``` 現在我們向 counters 集合中插入以下文檔,使用 productid 作為 key: ``` { "_id":"productid", "sequence_value": 0 } ``` sequence_value 字段是序列的是通過自動增長后的一個值。 使用以下命令插入 counters 集合的序列文檔中: ``` >db.counters.insert({_id:"productid",sequence_value:0}) ``` ## 創建 Javascript 函數 現在,我們創建函數 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 函數 接下來我們將使用 getNextSequenceValue 函數創建一個新的文檔, 并設置文檔 _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 函數來設置 _id 字段。 為了驗證函數是否有效,我們可以使用以下命令讀取文檔: ``` >db.prodcuts.find() ``` 以上命令將返回以下結果,我們發現 _id 字段是自增長的: ``` { "_id" : 1, "product_name" : "Apple iPhone", "category" : "mobiles"} { "_id" : 2, "product_name" : "Samsung S3", "category" : "mobiles" } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看