MongoDB入門系列(一):基礎概念和安裝

pursuer.chen發表於2017-11-11

概述  

MongoDB是目前非常流行的一種非關係型資料庫,作為入門系列的第一篇本篇文章主要介紹Mongdb的基礎概念知識包括命名規則、資料型別、功能以及安裝等。

 

環境:

OS:Windows

Version:3.4

一、安裝

1.下載解壓

在官網下載對應作業系統版本的安裝包,然後解壓;我這裡使用Windows環境安裝測試。

2.在D盤建立Mongodb\data\db目錄

3.初始化資料

最好先將bin目錄加入到環境變數,否則要到命令目錄下執行。

mongod --dbpath D:\mongodb\data\db

 4.啟動服務

在D:\mongodb目錄下建立mongo.config配置檔案,配置檔案內容如下,這裡只配置了資料和日誌路徑,其它的引數暫時預設。

dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongo.log  

將mongodb新增到服務啟動項

mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"

刪除服務啟動項命令

mongod  --remove --serviceName "MongoDB"

啟動服務

net start MongoDB

測試服務是否啟動,在瀏覽器中輸入localhost:27017;如果沒有手動指定埠那麼預設埠就是27017

二、報錯處理

1.api-ms-win-crt-runtime-11-1-0.dll

無法啟動此程式,因計算機中都是api-ms-win-crt-runtime-11-1-0.dll

處理方法:下載安裝Windows6.1-KB2999226-x64補丁

https://www.microsoft.com/zh-cn/download/details.aspx?id=49093

三、基礎概念

1.特點

MongoDB並不具備一些關係型資料庫中和普遍的功能,如連線和複雜的多行事務。省略這些功能是出於架構上的考慮(為了得到更好的擴充套件性),因為在分散式系統中這兩個功能難以高效的實現,同時為了追求效能MongoDB會盡可能的將一些處理邏輯交給客戶端(通過驅動程式或應用程式程式碼來實現)。

2.功能

1.索引

MongoDB支援通用的二級索引,允許多種快捷查詢,且提供唯一索引、複合索引、地理空間索引以及全文索引等。

2.聚合

MongoDB支援“聚合管道”,使用者能通過簡單的片段建立複雜的聚合,並通過資料庫自動優化。

3.特殊的聚合型別

MongoDB支援存在時間有限的集合,適用於那些將在某個時刻過期的資料,如會話。MongoDB也支援固定大小的集合,用於儲存近期資料,如日誌。

4.檔案儲存

MongoDB支援一種非常易用的協議,用於儲存大檔案和檔案後設資料。

3.基本概念

  • 文件是MongoDB中資料的基本單元,類似關係型資料庫中的行。
  • 一個例項可以擁有多個相互獨立的資料庫,每個資料庫都擁有自己的集合,集合類似關係型資料庫中的表。
  • 每個文件都有一個特殊的鍵“_id”,這個鍵在文件所屬的集合中是唯一的。
  • 每個文件不能有重複的鍵值。例如{"blog":"news","blog":"book"},在該文件中鍵值blog重複。
  • 一個集合可以儲存混合的文件,即不同型別的文件。但通常不這樣做,為了方便查詢和管理一般一種型別的資料放一個集合。
  • MongoDB不但區分型別,而且區分大小寫。

4.命名、規則

文件

  • 鍵不能含有\0(空字元)。這個字元用於表示鍵的結尾。
  • .和$具有特殊意義,只能在特定環境下使用。

集合

  • 集合名不能是空字串
  • 集合名不能包含\0字元
  • 集合名不能以"system."開頭
  • 集合名中不能使用保留字元“$”

資料庫

  • 不能是空字串("")。
  • 命名中不能含有:/、\、.、''、*、<、>、:、|、?、$、\0(空字元)。一般由字母和數字組成。
  • 資料庫名區分大小寫,建議小寫。
  • 資料庫名最多64個位元組。

5.資料型別

1.null

用於表示空值或不存在的欄位

例:{"x":null}

2.布林型

true和flase兩個值,例:

{"x":ture}

3.數值

預設使用64位的浮點型數值,對於整形值,可以使用NumberInt類(4位元組帶符號整數)或NumberLong類(表示8字元帶符號整數)。例:

預設:{"x":3.14}或者{"x":3}

指定整形值:{"x":NumberInt("3")}或者{"x":NumberLong("3")}

4.字串

{"x":"foobar"}

5.日期

{"x":new Date()}

6.正規表示式

{"x" : /a/b}

7.陣列

{"x" : ["a","b","c"]}

8.內嵌文件

文件可以巢狀其它文件,被巢狀的文件作為父文件的值

{"x" :{"a" : "b"}}

9.物件id

物件id是一個12位元組的ID,是文件的唯一標識。

10.二進位制型別

二進位制資料是一個任意位元組的字串

11.程式碼

 

總結

 

 

 

 

 

備註:

    作者:pursuer.chen

    部落格:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結,否則保留追究責任的權利。

《歡迎交流討論》

 

相關文章