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


概述  

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

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

《歡迎交流討論》

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM