MongoDB shell 介紹
MongoDB自帶javascript shell, 可在shell中使用命令列與MongoDB實列互動。shell可以執行管理操作,檢查執行實列等等操作。
一:如何執行shell?
在命令列中,執行mongo, 就可以啟動shell,如下命令:
注意:啟動時,shell將自動連線MongoDB伺服器,必須確保mongod已經啟動。
shell是一個功能完備的javascript解析器,可以執行任意的javascript程式。我們請看如下幾個簡單的demo。
它還可以定義和呼叫Javascript函式,如下程式碼命令:
二:MongoDB客戶端
執行命令 mongo後,shell會連到 MongoDB伺服器的test資料庫,並將資料庫的連結賦值給全域性變數db。
注意:db這個變數是通過shell訪問MongoDB的主要入口點。
如果現在我們想要檢視db當前指向那個資料庫,可以使用db命令,如下所示:
shell還包含一些非Javascript語法的擴充套件,比如選擇資料庫操作這些~ 如下程式碼:
如果現在檢視db變數,會發現其正指向foobar資料庫,如下命令:
如上,通過db變數,可以訪問其中的集合,比如,通過db.foobar 可返回當前資料庫的foobar集合。這意味著,幾乎所有的資料庫操作都可以通過shell完成。
三:shell中建立,讀取,更新,刪除操作。
3.1 建立 insert
insert函式可以將一個文件新增到集合中,比如部落格的列子,我們建立一個叫post的區域性變數,用於表示我們的文件,它會有幾個key,分別為 title, content,
和 date(釋出日期),如下:
如上,我們使用insert方法將其儲存到blog集合中,然後我們呼叫集合的find方法來查詢資料,可以看到資料被查詢出來了。我們再來看看如下:
db是指向foobar, db.blog 就是指向了 foobar.blog了;
3.2 讀取find和findOne
find和findOne方法可以用於查詢集合裡的文件,比如想檢視一個文件,可以使用findOne; 如下所示:
3.3 更新update。
我們可以使用update來更新資料,update至少接收二個引數,第一個是限定條件(用於匹配待更新的文件)。第二個是新的文件。
比如我們之前的post集合,現在想新增一個新key的話,比如增加 comments鍵,用於對之前寫的部落格增加評論功能。那麼評論功能肯定是一個陣列,因為有多條資料,我們可以看如下所示:
如上命令,先使用 post.comments = []; 向post集合中增加 comments屬性,然後我們使用 db.blog.find() 先查詢下blog集合,發現先沒有comments變數,
然後使用 db.blog.update({title: 'this is blog'}, post); 更新資料,第一個引數是匹配到那一條資料,第二個引數是更新後的資料。最後使用db.blog.find()方法查詢後,發現資料更新了。
3.4 刪除remove
使用remove方法可將文件從資料庫中永久刪除,如果沒有使用任何引數,只是一個空物件,比如 db.blog.remove({})這樣的,它會將集合內的所有文件全部刪除,
它還可以接受一個作為限定條件的文件作為引數,比如 db.blog.remove({'title': 'xxx'}); 這樣的,這樣就會刪除 title 為 xxx的資料了;
如下所示: