MongoDB介紹
MongoDB是一個基於分佈式文件存儲的數據庫。由
C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介於
關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。它支持的數據結構很是鬆散,是相似
json的
bson格式,所以能夠存儲比較複雜的數據類型。Mongo最大的特色是它支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建
索引。
特色
它的特色是高性能、易部署、易使用,存儲數據很是方便。主要功能特性有:
*面向集合存儲,易存儲對象類型的數據。
mongodb集羣參考
*模式自由。
*支持動態
查詢。
*支持徹底索引,包含內部對象。
*支持查詢。
*支持複製和故障恢復。
*使用高效的二進制數據存儲,包括大型對象(如視頻等)。
*自動處理碎片,以支持雲計算層次的擴展性。
*文件存儲格式爲BSON(一種JSON的擴展)。
*可經過
網絡訪問。
數據模型
一個MongoDB 實例能夠包含一組數據庫,一個DataBase 能夠包含一組Collection(集合),一個集合能夠包含一組Document(文檔)。一個Document包含一組field(字段),每個字段都是一個key/value pair。
key: 必須爲字符串類型。
value:能夠包含以下類型。
- 基本類型,例如,string,int,float,timestamp,binary 等類型。
- 一個document。
- 數組類型。
經常使用命令
基本經常使用命令
# 查看當前使用的數據庫 db # 查看當前服務器磁盤上的全部數據庫 show databases # 切換當前使用的數據庫,該庫不存在表明建立該庫 use dbname # 查看當前數據庫中磁盤上的全部表 show tables # 使用當前數據庫中的tablename表在內存中建立表 db.tablename
增刪改查
增
使用了不存在的對象,就表明建立對象,html
# 建立數據庫並使用該數據庫 use s20 # 建立表 db.stutent # 往表中添加數據【官方不在推薦使用】 db.stutent.insert({name:"henry"}) # 添加一條數據 db.stutent.insert([{name:"henry"},{name:"egon"}]) # 添加多條數據 #【官方推薦】 db.stutent.instrtOne({name:"henry"}) # 添加單挑數據 db.stutent.insertMany([{name:"小漩渦"},{name:"500ml"}])
查
# 查看全部數據 db.tablename.find() # 查看符合條件的全部數據 db.tablename.find({name:"小漩渦"}) # 【官方推薦】在3.2中加的新方法 返回值爲json數據 db.tablename.findOne({name:"henry"}) # 查詢出符合條件的第一條數據
改
# 修改內容須要用修改器$set # 根據查詢條件,修改符合條件的第一條數據【官方不在推薦使用】 db.tablename.update({查詢條件},{$修改器:{修改屬性}}) db.stutent.update({name:"henry"},{$set:{age:16}}) # 沒有age就建立有就修改 # 【官方推薦】 db.stutent.updateOne({name:"henry"},{$set:{sex:"male"}}) # 修改一條數據 db.stutent.updateMany({name:"henry"},{$set:{sex:"female",hobby:"喝酒"}}) # 修改符合條件的全部數據
刪
# 刪除全部符合條件的數據【官方不在推薦使用】 db.tablename.remove({查詢條件}) # 刪除表 db.tablename.drop() # 刪除庫 db.dropDatabase() #【官方推薦】 db.tablename.deleteOne() # 刪除符合條件的第一條數據 db.tablename.deleteMany() # 刪除全部符合條件的數據