1. 程式人生 > >MongoDB學習筆記一ID自增長

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

相關推薦

MongoDB學習筆記ID增長

概要 MongoDB 的_id欄位作為一個主鍵存在於所有文件的最頂層,_id必須是唯一的,而且總是具有唯一約束的索引。除了唯一約束,你可以在集合中的_id欄位上使用任何值, 以下這個指南描述了在_id上建立一個自增序列的兩種方式: Use Cou

MongoDB學習筆記 ID增長

    以下是官網原文地址:     http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/     概要     MongoDB 的_id欄位作為一個主鍵存在於所有文件的最頂層,

MongoDB學習筆記()

abi 不同 rip java brew 教程 move strong 安裝與配置   大數據時代,mysql等關系型數據庫已經不能滿足數據爆炸的大勢。nosql作為一種非關系型數據存儲模式應運而生,主要應用於分布式數據存儲系統。   【申明:本文中大部分內容來源提煉於菜鳥

GuavaCache學習筆記定義LRU演算法的快取實現

前言 今天在看GuavaCache快取相關的原始碼,這裡想到先自己手動實現一個LRU演算法。於是乎便想到LinkedHashMap和LinkedList+HashMap, 這裡僅僅是作為簡單的複習一下。 LRU LRU(Least recently used,最近最少使用)演算法根據資料的歷史訪問記錄來

MongoDB學習筆記()_初識MongoDB

1.關係型/非關係型資料庫前者:注重結構化,標準的SQL語句(結構化查詢語言),資料或關係儲存在單獨的表中。後者:易擴充套件,無固定儲存模式,有鍵值對、列、文件、圖多種形式,易橫向擴充套件,適合分散式計算。MongoDB屬於後者。2.MongoDB特性簡述面向文件儲存三個概念

mongodb 學習筆記

一.初步認識               MongoDB是一個基於分散式檔案儲存的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。屬於NOSQL的一種,在當前的nosql中算是一個比較成功的,它有如下特點:         它的特點是高效

MongoDB學習筆記()——MongoDB簡介

MongoDB資料庫是一種可擴充套件的敏捷NoSQL資料庫,它是基於文件儲存模型。在這種模型下,資料會被儲存為文件,而不是我們熟知的例如MySQL、Oracle等的行和列的儲存。文件是以BSON物件的形式儲存。 MongoDB旨在實現一個高效能、高可用、可自動

MongoDB學習筆記() MongoDB介紹

一、前言   最近開始學習非關係型資料庫MongoDB,卻在部落格園上找不到比較系統的教程,很多資料都要去查閱英文網站,效率比較低下。本人不才,藉著自學的機會把心得體會都記錄下來,方便感興趣的童鞋分享討論。部分資源出自其他部落格,旨將零散知識點集中到一起,如果有侵犯您的權利

MongoDB學習筆記:下載安裝MongoDB

MongoDB學習筆記一:MongoDB的下載和安裝 這幾天準備學習一下MongoDB,就打算把學習到的寫部落格記錄下來 一、MongoDB的下載 2.到下載頁面選擇社群版本,下載對應的版本,我這邊是下載windows的64位。 3.等待下載完成。 二、

MongoDB學習筆記

6)db.dept.find();查詢dept集合裡的所有資料 7)db.dept.insert({"deptno":10,"dname":"財務部","loc":"上海"}) 在集合dept裡儲存一條資料,集合不存在會自動建立 8)show collections;檢視所有的集合 9)var deptDat

MONGODB學習筆記:入門

文件:多個鍵及其關聯的值『有序』地放置在一起。 {"greeting" : "Hello, world!", "foo" : 3} 集合:一組文件。集合是無模式的,下面兩個文件可以存在於同一個集合裡面: {"greeting" : "Hello, world!"} {"f

MongoDB學習筆記()簡介與安裝

[mongodb-org-3.6] name = MongoDB Repository baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck = 1 enabled = 1 gpgk

MongoDB學習筆記() MongoDB介紹及安裝

 這是MongoDB的系列學習筆記的第一篇,主要介紹什麼是非關係型資料庫MongoDB,如何下載,去哪兒下載,又該怎麼正確的安裝等一系列問題。 一、前言 最近開始學習非關係型資料庫MongoDB,卻在部落格園上找不到比較系統的教程,很多資料都要去查閱英文網站,效率比較

mongoDB學習筆記()之操作符

  本文主要講解mongoDb的一些常用的操作符的用法.隨著作者本身的能力的提高,本文也會不斷的完善. 官方文件連結為有: https://docs.mongodb.com/manual/reference/operator/ 什麼是操作符呢? 其實說白了就是 "$" 加上 in,all

轉:C#制作ORM映射學習筆記 定義Attribute類

技術 sage 其中 username pac ont 學習 collect reat 之前在做unity項目時發現只能用odbc連接數據庫,感覺非常的麻煩,因為之前做web開發的時候用慣了ORM映射,所以我想在unity中也用一下ORM(雖然我知道出於性能的考慮這樣做事不

mongoDB學習筆記

介紹 tle 狀態 負載 tutorial dir 基於 管理 集合 說明: MongoDB由databases組成,database由collections組成,collection由documents組成,document由fileds組成。MongoDB是異步寫數據

並發編程學習筆記之構建定義的同步工具(十)

利用 追蹤 這不 temp sets nor rac lse 情況下 概述: 在並發編程學習筆記之並發工具類(四)中,為大家介紹了幾種同步工具(同步工具就是依靠自己的狀態,調節線程是阻塞還是運行用的.),閉鎖、FutureTask、信號量、關卡. 使用以上的同步工具大部分時

併發程式設計學習筆記之構建定義的同步工具(十)

概述: 在併發程式設計學習筆記之併發工具類(四)中,為大家介紹了幾種同步工具(同步工具就是依靠自己的狀態,調節執行緒是阻塞還是執行用的.),閉鎖、FutureTask、訊號量、關卡. 使用以上的同步工具大部分時候可以滿足我們的需求,但是如果沒能滿足我們需要的功能,可以使用語言和類庫提供的底層

Eclipse匯出包含定義類的Jar包供Unity3D呼叫學習筆記

開啟Eclipse建立一個專案AndroinPlugins並標記為library專案 建立包名com.android.plugins 建立一個自定義類TestPlugins 定義一個無返回值,沒有引數的方法HelloWorld: public void HelloWorld(){

Spring-boot mongodb ID增長註解實現 適用於JDK 1.7和JDK 1.8

開發工具Idea ,JDK1.8 Entity類 SeqInfo.java package com.gl.springbootdao.mongodb.entity; import lombok.Getter; import lombok.Setter; import lombok.T