上篇文章咱們簡單介紹了MongoDB安裝以及啓動命令,本文咱們來看看基本的增刪改查,對MongoDB有一個直觀的認識。 shell
本文是MongoDB系列的第二篇文章,瞭解前面的文章有助於更好的理解本文:數據庫
1.Linux上安裝MongoDBjson
上篇文章咱們提到能夠在MongoDB啓動成功以後經過mongo命令進入MongoDB客戶端,而後在客戶端輸入操做命令執行增刪改查等操做。固然,咱們也能夠經過一些客戶端工具來鏈接MongoDB,好比Robo 3T。 服務器
首先咱們下載Robo 3T(下載地址https://robomongo.org/download),下載成功以後解壓,找到.exe可執行文件雙擊啓動,啓動後新建一個鏈接,輸入ip地址(注意鏈接以前要確保Linux上的MongoDB已經啓動),以下: 函數
鏈接成功以後,咱們就能夠看到數據庫的信息了,以下: 工具
暫時咱們全部的操做都先放在test數據庫中進行(默認狀況下,test數據庫爲空,這裏不顯示空的數據庫,此時執行能夠選中CentOS菜單,右鍵單擊點擊Open Shell,默認打開test數據庫),選中test,右鍵單擊,選擇Open Shell,以下: spa
這裏的shell是一個功能完整的JavaScript解釋器,能夠運行JavaScript程序,這個很好玩,以下我定義一個函數而後調用: 命令行
函數定義和調用的代碼寫好以後,按左上角的三角符號表示運行,也能夠按F5或者Ctrl+Enter組合鍵。咱們也能夠調用JavaScript的標準函數庫,以下: code
再好比調用Date函數,以下: blog
若是咱們沒有使用Robo 3T工具,而是直接在命令行經過mongo命令來啓動shell,以下:
此時,shell會鏈接到MongoDB服務器的test數據庫,並將數據庫鏈接賦值給全局變量db,咱們將經過db這個變量實現不少功能,咱們也能夠查看db當前指向哪一個數據庫,直接使用db命令,以下:
再好比咱們能夠經過use命令來切換數據庫(上文中也有用到過),以下:
在添加以前咱們先來講說數據庫的建立,上文咱們提到了use命令,表示切換到某一個數據庫中去,若是咱們想切換到一個並不存在的數據庫中去,系統就會自動的幫咱們建立這個數據庫。可是一個空的數據庫系統並不會顯示出來,往這個數據庫中插入一條記錄,咱們就能夠看到數據庫存在了,以下:
在MongoDB中,咱們插入的每一條記錄都是一個json字符串,這個json字符串咱們稱做文檔,多個文檔能夠組成一個集合,這個文檔就相似於咱們關係型數據庫中的一行數據,而集合就相似於關係型數據庫中的一張表,集合也不用專門去建立,直接輸入向哪一個集合中插入數據便可,此時集合就會被自動的建立出來了。
固然咱們也能夠批量的添加文檔,以下(批量添加同樣也可使用insert方法來完成):
db.sang_collect.insertMany([{x:1},{x:2},{x:3}])
若是在插入某一個文檔時出錯,則其後面的文檔就會插入失敗,而在其以前已經插入的文檔則不受影響,以下:
db.sang_collect.insertMany([{_id:99,x:99},{_id:99,x:98},{_id:97,x:97}])
因爲第二個文檔的_id
字段與前面的重複,因此第二第三個文檔插入失敗,第一個文檔則插入成功。
數據添加成功以後咱們再來看看查詢,利用db.sang.find()
方法咱們能夠查看全部文檔(全部記錄),若是隻查看一個文檔(一條記錄),能夠經過db.sang.findOne()
命令,在查看以前我先用一個for循環多插入幾條數據,以下:
而後分別調用find和findOne方法查看,以下:
查出來的數據除了咱們插入的x以外,還有一個_id
字段,這是系統自動爲咱們添加的字段,咱們也能夠本身傳入_id
,可是_id
字段不能重複,以下:
find和findOne中也能夠傳入查詢參數,這個咱們後面再詳細說。
update操做能夠用來更新數據,它接收兩個參數,第一個參數表示更新條件,第二個參數表示要更新的數據,好比我將全部x:1的數據改成x:999,以下:
remove操做能夠用來刪除數據,以下:
咱們也能夠將要執行的腳本放在一個js文件中,在使用shell腳本時指定要執行的js文件,以下:
mongo ~/myjs.js
shell會依次執行js中的腳本,並在執行完成後退出。以下:
個人js腳本中是兩行插入語句,此時咱們從新進入到shell中,就能夠看到剛剛的數據已經插入成功了。
若是有每次啓動都要加載的js文件,咱們能夠將其內容放在.mongorc.js
文件中,該文件放在當前用戶目錄下,以下:
這樣,每次啓動都會打印一個"你好,歡迎使用MongoDB"
.
好了,MongoDB的基本操做咱們先說這麼多,讓各位小夥伴對MongoDB有一個基本的認識,後面的文章咱們會詳細的介紹MongoDB中增刪改查的各類狀況,敬請關注。
參考資料:
1.《MongoDB權威指南第2版》
更多資料請關注公衆號: