MongoDB 教程

jopen 9年前發布 | 33K 次閱讀 MongoDB NoSQL數據庫

原文  http://segmentfault.com/blog/trigkit4/1190000002547229

概念

MongoDB是一個跨平臺的,面向文檔的數據庫,提供高性能,高可用性和可擴展性方便。MongoDB工作在收集和文件的概念。

什么是NoSql?

NoSql,全稱是Not Only Sql,指的是非關系型的數據庫。下一代數據庫主要解決幾個要點:非關系型的、分布式的、開源的、水平可擴展的。原始的目的是為了大規模web應用,這場運動開始于2009年初,通常特性應用如:模式自由、支持簡易復制、簡單的API、最終的一致性(非ACID)、大容量數據等。NoSQL被我們用得最多的當數key-value存儲,當然還有其他的文檔型的、列存儲、圖型數據庫、xml數據庫等。

為什么要使用MongoDB

JSON風格文件的形式,面向文檔存儲:數據存儲

對任何屬性可索引

復制和高可用性

自動分片

豐富的查詢

快速就地更新

MongoDB的專業技術支持</pre>

應該在哪里使用MongoDB?

大數據

內容管理和交付

移動和社交基礎設施

用戶數據管理

數據平臺</pre>

MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。

基本的用法是存儲JSON數據,這很適合JavaScript程序。其特性如下:

1. 沒有表結構的概念,每條記錄可以有完全不同的結構

  1. 業務開發方便快捷
  2. sql數據庫需要事先定義表結構再使用</pre>

      在Mac下安裝MongoDB
    
    </h2>
      <p>
          第一種、用瀏覽器或者第三方工具下載
      </p>
      <p>
          當前版本的下載地址:http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.6.tgz
      </p>
    
    </div>

      或者第二種、打開終端,使用以下命令行下載:
    
    </p>
    curl http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.6.tgz > mongodb.tgz 

      安裝成功之后,“mongod”命令啟動mongo數據庫。瀏覽器下輸入 <a href="/misc/goto?guid=4959626598531575493">http://127.0.0.1:28017</a> 如果能正常顯示mongo數據庫的信息,則表示啟動成功。
    
    </p>
      <p>
          成功后的界面:
      </p>
    
    MongoDB 教程 </div>

      安裝步驟
    
    </h3>
      <p>
          1.首先在終端輸入ls,列出目錄,找到你的mongodb文件,以tgz結尾的
      </p>
    
    MongoDB 教程 </div>

      2.打開終端,輸入tar -zxvf mongodb-osx-x86_64-2.4.6,當然各自的版本號自己對應正確了啊。
    
    </p>

      3.將解壓的安裝文件移動到你所喜歡的位置:
    
    </p>
    mv -n ~/Downloads/mongodb-osx-x86_64-2.4.6 ~/Applications/mongodb/

      我的解壓目錄是Downloads,默認移到Applications的mongodb文件夾是看不見的
    
    </p>

      4、在根目錄 / 下創建data/db目錄,用于放置mongodb數據,并且給該目錄設置權限
    
    </p>
    sudo mkdir -p /data/db
    sudo chown -R  trigkit4 /data 

      5.啟動mongodb服務
    
    </p>

      打開終端,輸入cd Applications/mongodb/bin,回車后,再輸入./mongod
    
    </p>

      <img src="https://simg.open-open.com/show/4abbd496dad826ff0dcc2b75f56cd2a0.jpg" alt="MongoDB 教程" width="585" height="366" /> 
    
    </p>

      6.打開另外一個終端,輸入Applications/mongodb/bin,回車,輸入./mongo
    
    </p>

      <img src="https://simg.open-open.com/show/e92bd472fdd4e523f9aa2ccfa5e1503d.jpg" alt="MongoDB 教程" width="464" height="366" /> 
    
    </p>

      文檔
    
    </h2>

      文檔是MongoDB的核心概念,多個鍵及其關聯的值有序地放置在一起便是文檔。 在js里,文檔表示為對象:
    
    </p>
    {"greenting" : "Hello,world!"} 

      這個對象只有一個鍵"greeting",其對應的值"Hello,world!"
    
    </p>

      文檔的鍵是字符串,除少數例外情況,鍵可以使用任意UTF-8字符:
    
    </p>
    - 鍵不能含有\0(空字符)。這個字符用來表示鍵的結尾
    • .和$有特別的意義,只有當特定環境下才能使用,通常來說是被保留了
    • 以下劃線"_"開頭的鍵是保留的,雖然不是嚴格要求的</pre>

      MongoDB不單區分類型,也區分大小寫,還有,MongoDB的文檔不能有重復的鍵,例如下面的文檔是非法的:
      
      </p>
      {"greeting":"Hello,world!","greeting":"Hello,mongoDB!"} 

      集合
      
      </h2>

      集合是一組文檔。如果說MongoDB中的文檔類似于關系型數據庫中的行,那么集合就如同表。
      
      </p>

      無模式
      
      </h3>

      集合是無模式的。這意味著集合里面的文檔可以是各式各樣的,例如下面兩個文檔可以存在于同一個集合里面:
      
      </p>
      {"greeting": "Hello,world!"} {"foo": 5} 

      命名
      
      </h3>

      我們可以通過名字來標示集合。集合名可以是滿足下列條件的UTF-8條件
      
      </p>
      - 集合名不能是空字符串""

    • 集合名不能含有\0字符(空字符)
    • 集合名不能以"system."開頭,這是為系統集合保留的前綴
    • 用戶創建的集合名字不能含有保留字符$ </pre>

      子集合
      
      </h3>

      組織集合的一種慣例是使用"."字符分開的按命名空間劃分的子集合。
      
      </p>

      Shell中的基本操作
      
      </h2>

      在shell查看數據會用到4個基本操作:創建、讀取、更新和刪除(CRUD)
      
      </p>

      數據庫
      
      </h2>

      MongoDB中多個文檔組成集合,同樣多個集合可以組成數據庫。一個MongoDB實例可以承載多個數據庫,數據庫名可以是滿足以下條件的任意UTF-8字符串
      
      </p>
      - 不能是空字符串("")

    • 不能含有''(空格)、.、$、/、\和\0(空字符)
    • 應全部小寫
    • 最多64字節</pre>

      數據類型
      
      </h2>

      MongoDB支持許多數據類型的列表下面給出:
      
      </p>
      String : 這是最常用的數據類型來存儲數據。在MongoDB中的字符串必須是有效的UTF-8

Integer : 這種類型是用來存儲一個數值。整數可以是32位或64位,這取決于您的服務器。

Boolean : 此類型用于存儲一個布爾值 (true/ false) 。

Double : 這種類型是用來存儲浮點值。

Min/ Max keys : 這種類型被用來對BSON元素的最低和最高值比較。

Arrays : 使用此類型的數組或列表或多個值存儲到一個鍵。

Timestamp : 時間戳。這可以方便記錄時的文件已被修改或添加。

Object : 此數據類型用于嵌入式的文件。 Null : 這種類型是用來存儲一個Null值。

Symbol : 此數據類型用于字符串相同,但它通常是保留給特定符號類型的語言使用。

Date : 此數據類型用于存儲當前日期或時間的UNIX時間格式。可以指定自己的日期和時間,日期和年,月,日到創建對象。

Object ID : 此數據類型用于存儲文檔的ID。

Binary data : 此數據類型用于存儲二進制數據。

Code : 此數據類型用于存儲到文檔中的JavaScript代碼。

Regular expression : 此數據類型用于存儲正則表達式</pre>

MongoDB的基本命令

use 命令

MongoDB use DATABASE_NAME用于創建數據庫。該命令將創建一個新的數據庫,如果它不存在,否則將返回現有的數據庫。

dropDatabase() 方法

MongoDB db.dropDatabase()命令是用來刪除一個現有的數據庫。

dropDatabase()命令的基本語法如下:

db.dropDatabase()

drop() 方法

MongoDB的db.collection.drop()是用來從數據庫中刪除一個集合。

insert() 方法

要插入數據到MongoDB集合,需要使用MongoDB的insert()或save()方法。

find() 方法

要從MongoDB查詢集合數據,需要使用MongoDB的find()方法。

pretty() 方法

結果顯示在一個格式化的方式,可以使用pretty()方法.

Limit() 方法

要限制MongoDB中的記錄,需要使用limit()方法。limit()方法接受一個數字型的參數,這是要顯示的文檔數。

語法:

limit()方法的基本語法如下

>db.COLLECTION_NAME.find().limit(NUMBER)

MongoDB 數據轉儲

創建備份MongoDB中的數據庫,應該使用mongodump命令。

mongodump命令的基本語法如下:

>mongodump

恢復數據

恢復備份數據使用MongoDB的mongorerstore命令。此命令將恢復所有的數據從備份目錄。

語法:

mongorestore命令的基本語法

>mongorestore

剩下的方法或命令大家都可以去網上搜索的,這里就不接著贅述了啊。

</div> </div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!