數據庫(Database)基本概念:html
爲何都採用數據庫來儲存數據:web
ROBMS(關係型數據庫):sql
Nosql (非關係型數據庫):mongodb
特徵:
使用鍵值(Key Value)儲存數據;
MongoDB的邏輯結構是一種層次結構,主要由:文檔(document)、集合(collection)、數據庫(database)這三部分組成的。數據庫
一個MongoDB實例支持多個數據庫(database)。json
關係型數據庫和非關係型數據庫區別:
關係型數據庫比較結構化,操做不是很靈活,菲關係型數據庫操做靈活,但不適合大型數據存儲,比較適合微架構,二者是相輔相成的關係
數組
非關係型數據庫使用方面:安全
非關係型數據庫主要適合小微型架構的使用服務器
MongoDB(非關係型數據庫):數據結構
安裝:
下載:https://www.mongodb.com/
偶數是穩定版,奇數是開發版
最好下載64位的系統版本的
配置環境變量:
建立配置文件在bin下穿件文件mongod.cfg
執行一段命令:
sc.exe create MongoDB binPath= "\"F:\MongoDB\Server\3.2\bin\mongod.exe\" --service --config= \"F:\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
主要是讓MongoDB一直運行在內存中
參考資料:
https://www.cnblogs.com/wzlbl...
https://www.cnblogs.com/chenl...
MongoDB的組成:
基本指令:show dbs
顯示當前全部的數據庫use
數據庫名 進入到指定數據庫db
顯示當前所在的數據庫show collections
顯示數據庫中的全部集合
使用管理員打開 cmd
輸入 mongo
進入MongoDB的環境
進入MongoDB的環境才能執行MongoDB的命令
而後使用命令行進行CRUD(增刪改查):db.<collection>.insert(doc)
舉例子:
想school數據庫中的學生集合student中插入一個新的學生對象
增長一條數據:db.student.insert({id:"001",name:"znl",age:18,sex:「男」})
在當前的集合(school)中新建一條數據
查詢一條數據:db.<collection>.find();
如:db.student.find();
回車 就能查詢student下的全部數據
插入多條數據:
db.集合名.insert([ {name:"張三",age:18,sex:"man"}, {name:"張三",age:18,sex:"man"}, {name:"張三",age:18,sex:"man"}, {id:18,name:"張三",age:18,sex:"man"} ]);
插入多條數據時把多條語句放在一個數組裏
插入可隨便插入 沒必要拘泥於字段是否相同 當插入的字段不存在時會自動建立該字段
查看更多更多操做:http://www.mongodb.org.cn/man...
然而一直使用命令行操做是很麻煩的事情,因此推薦使用NOSQL可視化工具
安裝可視化工具下載地址:https://www.mongodbmanager.co...
可視化工具 查找功能:
插入(insert)語句:
db.student(集合名字).insert([ {id:1,name:"znl",age:18}, {id:1,name:"znl",age:18}, ]);
查詢語句:db.student(集合name).find();
設定條件查詢:db.student.find({ "_id" : ObjectId("5bd01c825f0d528d36a2c06f")});
查詢id對應的數據db.student.find({age:18,name:"張三"});
查詢全部的age是18而且name是張三的人db.student.findOne({age:18,name:"張三"});
查詢單條符合條件的數據
操做符-查詢有多少條數據:db.student.find().count();
或db.student.find().length();
返回數據總條數
查詢符合條件數據的條數:db.student.find({name:"張三"}).length();
返回符合name:"張三"的條數
更新原有的字段的數據:
db.student.update({"name":"張三"},{$set:{ name:"劉五", age:45 }});
把匹配到的name:"張三"
的數據都更新成 name:"劉五", age:45
也能夠新增沒有的字段 直接寫入就能夠
$set :有這個字段就修改 沒有這個字段就新增
刪除一個字段:
db.student.update({"name":"張三"},{$unset:{ age:1 }});
查詢name:張三
的一條數據 而後刪除它的age字段
修改多條:
db.student.updateMany({"sex":"man"},{$set:{ aihao:"玩遊戲" }});
把符合sex:man
的語句都新增(修改)一條aihao:"玩遊戲"
$set :有則修改 無則新增
更新多條數據方法2:
db.student.update({name:"張三"},{$set:{ name:"王五" }}, { multi:true });