(一)、mongodb組成
數據庫、集合、文檔、域、索引 SQL術語 MongoDB術語 解釋/說明 database database 數據庫 table collection 數據庫表/集合 row document 數據記錄行/文檔 column field 數據字段/域 index index 索引 table joins 錶鏈接,MongoDB不支持 primary key primary key 主鍵,MongoDB自動將_id字段設置爲主鍵sql
一、數據庫。mongodb能夠創建多個數據庫。MongoDB的單個實例能夠容納多個獨立的數據庫,每個都有本身的集合和權限,不一樣的數據庫也放置在不一樣的文件中。 <1>、經常使用的命令 show dbs" 命令能夠顯示全部數據的列表。 執行 "db" 命令能夠顯示當前數據庫對象或集合。 use yz 建立數據庫。 db.yz.insert({"name","liqingbiao"}) 向剛建立的數據庫插入數據 db.dropDatabase(); 刪除數據庫mongodb
二、系統保留數據庫
admin: 從權限的角度來看,這是"root"數據庫。要是將一個用戶添加到這個數據庫,這個用戶自動繼承全部數據庫的權限。一些特定的服務器端命令也只能從這個數據庫運行,好比列出全部的數據庫或者關閉服務器。 local: 這個數據永遠不會被複制,能夠用來存儲限於本地單臺服務器的任意集合 config: 當Mongo用於分片設置時,config數據庫在內部使用,用於保存分片的相關信息。數據庫
三、文檔。文檔是一組鍵值對(key-value)。mongodb的文檔不須要設置相同的字段,而且相同字段不須要相同的數據類型,這和關係型數據庫有很大的區別。 一、文檔中的鍵/值對是有序的。 二、文檔中的值不只能夠是在雙引號裏面的字符串,還能夠是其餘幾種數據類型(甚至能夠是整個嵌入的文檔)。 三、MongoDB區分類型和大小寫。 四、MongoDB的文檔不能有重複的鍵。 五、文檔的鍵是字符串。除了少數例外狀況,鍵可使用任意UTF-8字符。服務器
文檔鍵命名規範: 鍵不能含有\0 (空字符)。這個字符用來表示鍵的結尾。 .和$有特別的意義,只有在特定環境下才能使用。 如下劃線"_"開頭的鍵是保留的(不是嚴格要求的)ide
五、集合。集合就是mongodb文檔組,相似於RDBMAS中的表格。 集合存在於數據庫中,集合沒有固定的結構,意味着你能夠插入不一樣格式和類型的數據庫,插入集合的數據都會有必定的關聯性。 合法的集合名 集合名不能是空字符串""。 集合名不能含有\0字符(空字符),這個字符表示集合名的結尾。 集合名不能以"system."開頭,這是爲系統集合保留的前綴。 用戶建立的集合名字不能含有保留字符。有些驅動程序的確支持在集合名裏面包含,這是由於某些系統生成的集合中包含該字符。除非你要訪問這種系統建立的集合,不然千萬不要在名字裏出現$。 url
五、相關的命令3d
5.一、########建立數據庫###################對象
use yz ####建立或切換數據庫,剛建立的數據庫不在數據庫列表中,須要向數據庫裏插入一些數據 switched to db yz show dbs #####顯示當前的數據庫 admin 0.000GB config 0.000GB local 0.000GB db.yz.insert({"name":"yz"}) ####向數據庫插入一些數據 WriteResult({ "nInserted" : 1 }) show dbs; admin 0.000GB config 0.000GB local 0.000GB yz 0.000GB db ###############3查看當前的數據庫 yz db.dropDatabase() ######刪除當前的數據庫 { "dropped" : "yz", "ok" : 1 }繼承
5.二、###################建立和刪除集合(表)##################教程
db.createCollection("user") ########在當前數據庫yz下建立user集合 { "ok" : 1 } show tables; ###########顯示全部集合 user yz db.name.drop() ######刪除集合或表name true show tables; lqb mycol1 user
5.三、##############文檔操做################### MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語法以下: db.COLLECTION_NAME.insert(document)
db.name.insert({"name":"liqingbiao"}) #########向集合name插入數據 WriteResult({ "nInserted" : 1 }) db.name.find() ##############查看name集合 { "_id" : ObjectId("5cee3d291d0f99f83952637e"), "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 數據庫", "by" : "菜鳥教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } { "_id" : ObjectId("5cee3d991d0f99f83952637f"), "name" : "liqingbiao" }
db.collection.update( ####更新文檔 , , { upsert: , multi: , writeConcern: } )
db.name.remove({"title" : "MongoDB 教程"}) ####刪除 WriteResult({ "nRemoved" : 1 }) db.name.find() { "_id" : ObjectId("5cee3d991d0f99f83952637f"), "name" : "liqingbiao" }
db.name.remove({}) ####刪除全部的 WriteResult({ "nRemoved" : 1 }) db.name.find()
######
db.getMongo() #######查看當前數據庫的鏈接地址 db.stats() ####查看當前數據庫狀態 db.version() #####查看當前數據庫版本 db.createCollection('phone') ###建立集合phone show collections或者showtables ####查看集合 db.log.stats() # 查看數據狀態 db.log.dataSize() # 集合中數據的原始大小 db.log.totalIndexSize() # 集合中索引數據的原始大小 db.log.totalSize() # 集合中索引+數據壓縮存儲以後的大小 db.log.storageSize() # 集合中數據壓縮存儲的大小