概述
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 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須注明文章來源,且在文章開頭明顯處給明鏈接,否則保留追究責任的權利。 《歡迎交流討論》 |
