今天對mongodb的簡單命令操做學習了一番,作出如下總結。mysql
mongodb是一個非關係型數據庫,它不能像關係型數據庫那樣進行一些增刪改查的操做,咱們須要使用一些特殊的命令來操做mongodb。sql
鏈接mongodb
有一個固定的語法,可使用以下幾種方式mongodb
使用用戶名和密碼鏈接登錄到默認數據庫shell
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
複製代碼
使用用戶 admin
使用密碼123456
鏈接到本地的 MongoDB 服務上數據庫
$ mongodb://admin:123456@localhost/
複製代碼
使用用戶名和密碼鏈接登錄到指定數據庫json
$ mongodb://admin:123456@localhost/test
複製代碼
MongoDB 建立數據庫的語法格式以下:後端
$ use DataBase_Name
複製代碼
注意:若是指定的數據庫不存在,則建立數據庫,若是數據庫存在,則切換到指定數據庫bash
MongoDB 刪除數據庫的語法格式以下app
$ db.dropDatabase()
複製代碼
注意: 在此得的db指代的是切換到某一個數據庫下面之後的數據庫實例sqlserver
在mongodb數據庫中,之前的表(table)的形式在這裏是以集合的形式存在的,MongoDB 中使用 createCollection() 方法來建立集合。語法格式以下:
$ db.createCollection(name, options)
複製代碼
說明: name: 要建立的集合名稱,options: 可選參數, 指定有關內存大小及索引的選項,具體的options的參數,咱們能夠參考下面的表格
字段 | 類型 | 描述 |
---|---|---|
capped | 布爾 | (可選)若是爲 true,則建立固定集合。固定集合是指有着固定大小的集合,當達到最大值時,它會自動覆蓋最先的文檔。當該值爲 true 時,必須指定 size 參數。 |
autoIndexId | 布爾 | (可選)如爲 true,自動在 _id 字段建立索引。默認爲 false。 |
size | 數值 | (可選)爲固定集合指定一個最大值(以字節計)。若是 capped 爲 true,也須要指定該字段。 |
max | 數值 | (可選)指定固定集合中包含文檔的最大數量。 |
下面,咱們就嘗試去建立一個集合
$ db.createCollection("userInfo", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
複製代碼
說明:在mongodb當中,建立集合並不是是必定的,當咱們向裏面去插入一條數據的時候,這個集合就會本身去建立
$ db.userInfo.insert({"userName" : "yangbiao"})刪除集合
複製代碼
MongoDB 中使用 drop() 方法來刪除集合。具體的語法格式以下:
$ db.collection.drop()
複製代碼
例如,若是咱們想把剛剛建立的usrInfo這個集合刪除,則可使用以下語法
$ db.userInfo.drop()
複製代碼
在此處須要說明一下,之前的關係型數據庫(mysql,sqlserver,oracel等數據庫),這些都是關係型數據庫,存儲是以表爲單爲,表中又以行爲單位,而mongodb是一個非關係型數據庫,已經沒有表與行的概念了
mongodb的集合中,全部的數據都是以json
鍵值對的形式在進行存儲,若是咱們但願向裏面去插入一條信息,則至關因而插入一個json鍵值對(也能夠理解爲一個js對象),它的語法格式以下
$ db.userInfo.insert({name:'樊啓東',sex:'男'})
複製代碼
在上面的語句中插入了一行記錄,這一行記錄是以json鍵值對的形式插入進去的
在mongodb當中,更新文檔的方式有兩種。
如今,咱們來看一下這兩種方式的語法與區別
save方法
save() 方法經過傳入的文檔來替換已有文檔。語法格式以下
$ db.collection.save(
<document,
{
writeConcern: <document
}
)
複製代碼
如今看一下具體的語法
$ db.col.save({
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "我如今經過mongodb插入數據"
})
複製代碼
在此,咱們保存的是一個已經存在的文檔
update方法
$ db.collection.update(
<query,
<update,
{
upsert: <boolean,
multi: <boolean
}
)
複製代碼
說明一下:
query: update的查詢條件,相似sql update查詢內where後面的。
update: update的對象和一些更新的操做符(如inc...)等,也能夠理解爲sql update查詢內set後面的
upsert: 可選,這個參數的意思是,若是不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。
multi: 可選,mongodb 默認是false,只更新找到的第一條記錄,若是這個參數爲true,就把按條件查出來多條記錄所有更新。
如今,咱們看一下具體的語法格式
$db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) # 輸出信息
db.col.find().pretty()
{
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "MongoDB",
"description" : "我經過update寫入的數據",
}
複製代碼
經過對上面命令的總結,逐漸對非關係型數據庫有了必定的認知和熟悉,但願可以在接下來的日子裏,按部就班,爭取早點學會MongoDB,那樣就能先後端一把梭哈,爲所欲爲,還能體驗刪庫跑路的操做啦! (O(∩_∩)O哈哈~,固然是不可能的)