1.關係型和非關係型的介紹 mongodb
relational 關係型 數據庫
關係數據庫很強大,可是他並不能很好的應付全部的應用場景。MySQL的擴展性查,大數據IO壓力大,表結構更改困難數組
MongoDB 非關係型服務器
易擴展,大數據量高性能,靈活的數據模型,高可用app
2.mongodb的優點性能
①易擴展:NoSQL數據庫種類繁多,可是一個共同特色都是去掉關係數據庫的關係型特性。數據之間無關係,這樣就很是容易擴展大數據
②大數據量,高性能:NoSQL數據可都具備很是高的讀寫性能,尤爲在大數據量下,一樣表現優秀。這得益於他的無關係性,數據可的結構簡單進程
③靈活的數據模型:NoSQL無需事先爲要存儲的數據創建字段,隨時能夠存儲定義的數據格式。而在關係數據庫裏,增刪字段是一件很是麻煩的事情。若是是很是大數據量的表,增長字段簡直就是一個噩夢。ip
3.mongodb安裝rem
下載地址:
https://www.mongodb.com/download-center/community
必定要下載zip文件
解壓後放到c:\MongoDB
4.客戶端mongo
啓動本地客戶端:mongo
查看幫助:mongo -help
退出:exit或者ctrl+c
5.關於database的基礎命令
查看當前數據庫:db
查看全部的數據庫:show dbs /show databases
切換數據庫:use db_name
刪除當前數據庫:db.dropDatabase()
6.關於集合的基礎命令
不手動建立集合:向不存在的集合中第一次加入數據時,聚合會被建立出來
手動建立集合:
db.createCollection(name,options)
db.createCollection("student")
db.createCollection("sub",{capped:true,size:10})
參數capped:默認值爲false,表示不設置上線,值爲true表示設置上線
參數size:當capped值爲true時,須要制定此參數,表示上線大小,當文檔 達到上線時,會將以前的數據覆蓋,單位爲字節
查看集合:show collections
刪除集合:db.集合名稱.drop()
7.數據類型
object ID:文檔ID
string:字符串,最經常使用,必須是有效地UTF-8
Boolean:存儲一個布爾值,true或false
integer:整數能夠是32位或64位,這取決於服務器
double:存儲浮點數
arrays:數組或列表,多個值存儲到一個鍵
object:用於嵌入式的文檔,即一個值爲一個文檔
null:存儲null值
timestamp:時間戳,表示從1970-1-1到如今的總秒數
date:存儲當前日期或時間的UNIX時間格式
注意點:
①建立日期語句以下:參數的格式爲YYY-MM-DD
new Date("2017-12-20")
②每一個文檔都有一個屬性,爲_id,保證每一個文檔的惟一性
③能夠設置_id插入文檔,若是沒有提供,那麼mongoDB爲每一個文檔提供了一個獨特的_id,類型爲objectID
④objectID是一個12字節的十六進制數前四個字節爲當前的時間戳,接下來字節的機器ID,接下來兩個字節中mongoDB的服務進程id,最後三個字節是簡單的增量值
8.
①插入:db.集合名稱.insert(document)
插入文檔時,若是不指定——id參數,mongoDB會爲文檔分配一個惟一的objectID
②保存:db.集合名稱.save(ocument)
若是文檔_id已經存在則修改,若是文檔的_id不存在則添加
③簡單的查詢:db.集合名稱.find()
④更新:db.集合名稱.update(<query>,<update>,{multi:<boolean>})
參數query:查詢條件
參數update:更新操做符
參數multi可選:默認是false,表示只更新找到第一條記錄,值爲true,表示吧安祖條件的文檔所有更新
db.student.update({name:"hr"},{name:"mnc"})更新一條
db.student.update({name:"hr"},{$set:{name:"hys"}})更新一條
db.studnt.update({},{$set:{gender:0},{multi:true}})更新所有
⑤刪除:db.集合名稱.remove(<query>,<justOne:<boolean>>)
參數query:可選,刪除的文檔的條件
參數justOne:可選,若是設爲true或1,則只刪除一條,默認爲false,表示刪除多條
⑥數據查詢:方法find():查詢
db.集合名稱.find(條件文檔)
方法findOne():查詢,只返回第一個
db.集合名稱.findOne(條件文檔)
方法pretty():將結果格式化
db.集合名稱.find({條件文檔}).pretty