數據庫(Database)基本概念:html
爲何都採用數據庫來儲存數據:web
###數據庫分類sql
特徵: 使用鍵值(Key Value)儲存數據; MongoDB的邏輯結構是一種層次結構,主要由:文檔(document)、集合(collection)、數據庫(database)這三部分組成的。mongodb
關係型數據庫和非關係型數據庫區別: 關係型數據庫比較結構化,操做不是很靈活,菲關係型數據庫操做靈活,但不適合大型數據存儲,比較適合微架構,二者是相輔相成的關係 數據庫
非關係型數據庫使用方面:json
非關係型數據庫主要適合小微型架構的使用數組
MongoDB(非關係型數據庫):安全
安裝: 下載:www.mongodb.com/ 偶數是穩定版,奇數是開發版 最好下載64位的系統版本的bash
配置環境變量:服務器
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一直運行在內存中 參考資料: www.cnblogs.com/wzlblog/p/6… www.cnblogs.com/chenlq/p/65…
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"}
]);
複製代碼
插入多條數據時把多條語句放在一個數組裏 插入可隨便插入 沒必要拘泥於字段是否相同 當插入的字段不存在時會自動建立該字段
查看更多更多操做:www.mongodb.org.cn/manual/
然而一直使用命令行操做是很麻煩的事情,因此推薦使用NOSQL可視化工具 安裝可視化工具下載地址:www.mongodbmanager.com/download
可視化工具 查找功能: 插入(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
});
複製代碼