1.什么是MongoDB?
1.MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)装诡。 在高負載的情況下,添加更多的節(jié)點践盼,可以保證服務器性能鸦采。
2.MongoDB 旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
3.MongoDB 將數(shù)據(jù)存儲為一個文檔咕幻,數(shù)據(jù)結構由鍵值(key=>value)對組成渔伯。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔肄程,數(shù)組及文檔數(shù)組
2.MongoDB的特點
1.模式自由 :可以把不同結構的文檔存儲在同一個數(shù)據(jù)庫里?
2.面向集合的存儲:適合存儲 JSON風格文件的形式
3.完整的索引支持:對任何屬性可索引
4.復制和高可用性:支持服務器之間的數(shù)據(jù)復制锣吼,支持主-從模式及服務器之間的相互復制。復制的主要目的是提供冗余及自動故障轉移
5.自動分片:支持云級別的伸縮性:自動分片功能支持水平的數(shù)據(jù)庫集群蓝厌,可動態(tài)添加額外的機器
6.豐富的查詢:支持豐富的查詢表達方式玄叠,查詢指令使用JSON形式的標記,可輕易查詢文檔中的內嵌的對象及數(shù)組
7.快速就地更新:查詢優(yōu)化器會分析查詢表達式拓提,并生成一個高效的查詢計劃
8.高效的傳統(tǒng)存儲方式:支持二進制數(shù)據(jù)及大型對象(如照片或圖片)
3.三元素:?數(shù)據(jù)庫读恃、集合、文檔
4.數(shù)據(jù)庫基本命令
show dbs? ? ?列出所有在物理上存在的數(shù)據(jù)庫
db? ?當前數(shù)據(jù)庫? ? ?use 數(shù)據(jù)庫名稱? ? 切換數(shù)據(jù)庫代态,如果數(shù)據(jù)庫不存在就創(chuàng)建
db.stats()??查看當前數(shù)據(jù)庫信息? ? ? ??db.dropDatabase()? ?刪除當前數(shù)據(jù)庫
db.createCollection(name, options)? ? ?創(chuàng)建集合? ?
name是要創(chuàng)建的集合的名稱? ??options是一個文檔寺惫,用于指定集合的配置 選項??參數(shù)是可選的,所以只需要到指定的集合名稱
show collections:當前數(shù)據(jù)庫的集合數(shù)蹦疑。? ? ?db.集合名稱.drop()? ??刪除集合
db.集合名稱.insert(document)? ??單條插入? ? ? ? ? ?db.集合名稱.find()? ? 查詢全部文檔
5.比較運算符
等于西雀,默認是等于判斷,沒有運算符
小于$lt
小于或等于$lte
大于$gt
大于或等于$gte
不等于$ne
6.Mongodb的備份和恢復
mongodump -h dbhost -d dbname -o dbdirectory
-h: MongDB所在服務器地址歉摧,例如:127.0.0.1艇肴,當然也可以指定端口號:127.0.0.1:27017
-d: 需要備份的數(shù)據(jù)庫實例,例如:test
-o: 備份的數(shù)據(jù)存放位置叁温,例如:c:\data\dump豆挽,當然該目錄需要提前建立,在備份完成后券盅,系統(tǒng)自動在dump目錄下建立一個test目錄,這個目錄里面存放該數(shù)據(jù)庫實例的備份數(shù)據(jù)膛檀。
恢復備份
mongodb使用?mongorestore?命令來恢復備份的數(shù)據(jù)锰镀。
mongorestore -h hostname:port -d dbname --dir path
-h (host): MongoDB所在服務器地址娘侍,默認為: localhost:27017
-d (db): 需要恢復的數(shù)據(jù)庫實例,例如:test泳炉,當然這個名稱也可以和備份時候的不一樣憾筏,比如test2
--dir: 指定備份的目錄