一、mogodb的認識
1、簡介
MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的,語法有點類似javascript面向對象的查詢語言,它是一個面向集合的,模式自由的文檔型數據庫。
MongoDB 2.4中新引入了V8引擎, V8 是 Google 發佈的開源 JavaScript 引擎,採用 C++ 編寫,在 Google 的 Chrome 瀏覽器中被使用。V8 引擎可以獨立運行,也可以用來嵌入到 C++ 應用程序中執行。
2、mongodb與 mysql性能比較
分別插入100萬條記錄,並對其做100個用戶併發查詢操作
3、應用範圍和限制
缺點:不支持連表查詢,不支持sql語句,不支持事務存儲過程等,所以不適合存儲數據間關係比較複雜的數據,一般主要是當做一個數據倉庫來使用。
適用於:日誌系統,股票數據等。
不使用於:電子商務系統等需要連多表查詢的功能。
二、需要掌握的幾個概念
1、文檔
文檔是mongoDB中數據的基本單元,類似關係數據庫的行, 多個鍵值對有序地放置在一起便是文檔。
MongoDB 中以文檔的方式存取記錄,如一條記錄格式如下:
{"username":"Tom", "age":10 ,"sex":"男"}
{ "username":"Tom" , "age" : "10" }
{"Username":"Tom", "age":10}
注意:
(1)以上是三個不同的文檔,MongoDB區分大小寫的數據類型,第一個age字段是數字類型,第二個age是字符串類型。
(2)每一個文檔尺寸不能超過16M
2、集合
集合就是一組文檔,多個文檔組成一個集合,集合類似於 mysql裏面的表。
無模式是指,在同一個集合中可以包含不同格式的文檔,如:
{ "Name" : "Mongodb" , "Type" : "Nosql" }
{ "UserName" : "Tom" , "age" : 20 , "Gender" : "male" }
以上兩個文檔可以放在同一個集合中。
在Mysql需要先建表再插入數據,
模式自由(schema-free):意思是集合裏面沒有行和列的概念,
注意:MongoDB中的集合不用創建、沒有結構,所以可以放不同格式的文檔。
3、數據庫
多個集合可以組成數據庫。一個mongoDB實例可以承載多個數據庫,他們之間完全獨立。
Mongodb中的數據庫和Mysql中的數據庫概念類似,只是無需創建。
一個數據庫中可以有多個集合。
一個集合中可以有多個文檔。
4、mongodb的數據體系
三、mongodb安裝與啓動
(1) Linux服務器的mongodb安裝
第一步:下載軟件,可以到官方網站上下載,將軟件下載到本地後直接上傳到服務器
也可以直接在服務器上執行:Wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.9.tgz,直接下載
mongodb壓縮包,針對的是Linux服務器哦!
第二步:解壓並進入目錄
第三步:創建安裝目錄
第四步:移除bin目錄到安裝目錄下
解壓目錄及裏面的文件可刪除
2、啓動軟件
(1) Linux服務器的mongodb啓動
第一步:進入安裝目錄,可以查看到以下文件
mongod 服務端執行文件
mongo 客戶端軟件
mongoexport 導出數據
mongoimport 導入數據
mongodump 備份
mongorestore 恢復
第二步:查看幫助文檔
執行 mongod --help
--logpath 指定日誌文件的目錄和名字(此目錄必須先手工創建)
--logRotate rename 重命名新日誌文件
--fork 以服務進程的方式運行(運行在後臺)
--dbpath 指定數據的存儲目錄(此目錄必須先手工創建)
第三步:創建日誌目錄和數據目錄
第四步:啓動
./bin/mongod --fork --logpath /usr/local/mongodb/log/log.txt --logRotate rename --dbpath /usr/local/mongodb/data
可以通過netstat -tpln 來查看是否啓動成功
4、停止mongodb服務
Linux下可直接執行pkill mongod
四、入門語句
1、查看數據庫
語法:show dbs
2、創建數據庫
語法:use 數據庫名稱
3、查看當前數據庫
語法:db
4、創建集合(數據表)
無須創建集合,當往集合裏面添加數據時,集合就自動生成
這裏的db是系統的關鍵詞,它指向了當前數據庫。類似於JS裏面的this
5、查看集合
語法 show tables 或者 show collections
6、刪除集合
語法 db.集合名.drop()
8、查看幫助
(1)全局級別的幫助指令
Help
(2)數據庫級別的幫助指令
db.help();
(3)數據表級別的幫助指令
db.集合名.help()