概述 MongoDB是目前非常流行的一種非關係型資料庫,作為入門系列的第一篇本篇文章主要介紹Mongdb的基礎概念知識包括命名規則、數據類型、功能以及安裝等。 環境: OS:Windows Version:3.4 一、安裝 1.下載解壓 在官網下載對應操作系統版本的安裝包,然後解壓;我這裡使用Win ...
概述
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.特點
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 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接,否則保留追究責任的權利。 《歡迎交流討論》 |