1. 程式人生 > >MongoDB命令列操作

MongoDB命令列操作

本文專門介紹MongoDB的命令列操作,分上,下兩篇(其實本來是一篇,後來太長,於是拆之)。下篇介紹Record級別的操作,上篇介紹除Record以外的操作,如對database和collection的操作等。

其實,這些操作在MongoDB官網提供的Quick Reference上都有,但是英文的,為了方便,這裡將其稍微整理下,方便查閱。

這裡用來做測試的是遠端(10.77.20.xx)的Mongo資料庫。

1、登入和退出

mongo命令直接加MongoDB伺服器的IP地址(比如:mongo 10.77.20.xx),就可以利用Mongo的預設埠號(27017)登陸Mongo,然後便能夠進行簡單的命令列操作。

至於退出,直接exit,然後回車就好了。

  1. $ mongo 10.77.20.xx  
  2. MongoDB shell version: 2.0.4  
  3. connecting to: 10.77.20.xx/test  
  4. > show collections  
  5. > exit  
  6. bye  
從以上可以看出,登入後mongo會自動連上一個名為test的資料庫。如果這個資料庫不存在,那麼mongo會自動建立一個名為test的資料庫。上面的例子,由於Mongo伺服器上沒有名為test的db,因此,mongo新建了一個空的名為test的db。其中,沒有任何collection。

2、database級操作

  1. 2.1 檢視伺服器上的資料庫  
  2. > show dbs  
  3. admin   (empty)  
  4. back_up (empty)  
  5. blogtest    0.203125GB  
  6. local   44.056640625GB  
  7. test    (empty)  
  8. 2.2 切換資料庫  
  9. 切換到blogtest資料庫(從預設的test資料庫)  
  10. > use blogtest  
  11. switched to db blogtest  
  12. mongo中,db代表當前使用的資料庫。這樣,db就從原來的test,變為現在的blogtest資料庫。  
  13. 2.3 檢視當前資料庫中的所有集合  
  14. > show collections  
  15. book  
  16. system.indexes  
  17. user  
  18. 2.4 建立資料庫  
  19. mongo中建立資料庫採用的也是use命令,如果use後面跟的資料庫名不存在,那麼mongo將會新建該資料庫。不過,實際上只執行use命令後,mongo是不會新建該資料庫的,直到你像該資料庫中插入了資料。  
  20. > use test2  
  21. switched to db test2  
  22. > show dbs  
  23. admin   (empty)  
  24. back_up (empty)  
  25. blogtest    0.203125GB  
  26. local   44.056640625GB  
  27. test    (empty)  
  28. 到這裡並沒有看到剛才新建的test2資料庫。  
  29. > db.hello.insert({"name":"testdb"})  
  30. 該操作會在test2資料庫中新建一個hello集合,並在其中插入一條記錄。  
  31. > show dbs  
  32. admin   (empty)  
  33. back_up (empty)  
  34. blogtest    0.203125GB  
  35. local   44.056640625GB  
  36. test    (empty)  
  37. test2   0.203125GB  
  38. > show collections  
  39. hello  
  40. system.indexes  
  41. 這樣,便可以看到mongo的確建立了test2資料庫,其中有一個hello集合。  
  42. 2.5 刪除資料庫  
  43. > db.dropDatabase()  
  44. { "dropped" : "test2", "ok" : 1 }  
  45. > show dbs  
  46. admin   (empty)  
  47. back_up (empty)  
  48. blogtest    0.203125GB  
  49. local   44.056640625GB  
  50. test    (empty)  
  51. 2.6 檢視當前資料庫  
  52. > db  
  53. test2  
  54. 可以看出刪除test2資料庫之後,當前的db還是指向它,只有當切換資料庫之後,test2才會徹底消失。  

3、collection級操作

  1. 3.1 新建collection  
  2. > db.createCollection("Hello")  
  3. { "ok" : 1 }  
  4. > show collections  
  5. Hello  
  6. system.indexes  
  7. 從上面2.4也可以看出,直接向一個不存在的collection中插入資料也能建立一個collection。  
  8. > db.hello2.insert({"name":"lfqy"})  
  9. > show collections  
  10. Hello  
  11. hello2  
  12. system.indexes  
  13. 3.2 刪除collection  
  14. > db.Hello.drop()  
  15. true  
  16. 返回true說明刪除成功,false說明沒有刪除成功。  
  17. > db.hello.drop()  
  18. false  
  19. 不存在名為hello的collection,因此,刪除失敗。  
  20. 3.3 重新命名collection  
  21. 將hello2集合重新命名為HELLO  
  22. > show collections  
  23. hello2  
  24. system.indexes  
  25. > db.hello2.renameCollection("HELLO")  
  26. { "ok" : 1 }  
  27. > show collections  
  28. HELLO  
  29. system.indexes  
  30. 3.4 檢視當前資料庫中的所有collection  
  31. >show collections  
  32. 3.5 索引操作  
  33. 在HELLO集合上,建立對ID欄位的索引,1代表升序。  
  34. >db.HELLO.ensureIndex({ID:1})  
  35. 在HELLO集合上,建立對ID欄位、Name欄位和Gender欄位建立索引  
  36. >db.HELLO.ensureIndex({ID:1,Name:1,Gender:-1})  
  37. 檢視HELLO集合上的所有索引  
  38. >db.HELLO.getIndexes()  
  39. 刪除索引用db.collection.dropIndex(),有一個引數,可以是建立索引時指定的欄位,也可以是getIndex看到的索引名稱。  
  40. >db.HELLO.dropIndex( "IDIdx" )  
  41. >db.HELLO.dropIndex({ID:1})  
  42. 3.6 為集合中的每一條記錄新增一個欄位  
  43. 為user集合中的每一條記錄新增一個名為ex的欄位,並賦值為barrymore  
  44. db.user.update({},{$set:{"ex":"barrymore"}},false,true)  
  45. 3.7 重新命名欄位  
  46. 將集合中的所有記錄的gender欄位的名字修改為sex  
  47. db.user.update({},{$rename:{"gender":"sex"}},false,true)  
  48. 3.8 刪除欄位  
  49. 刪除集合中所有記錄的ex欄位  
  50. db.user.update({},{"$unset":{"ex":1}},false,true)  

上面的操作中用到了一個比較常用的update方法,其引數格式如下:

db.collection.update(criteria, objNew, upsert, multi )
criteria:update的查詢條件,類似sql update查詢內where後面的
objNew:update的物件和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的。
upsert : 如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
multi : mongodb預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。

相關推薦

MongoDB命令操作

本文專門介紹MongoDB的命令列操作,分上,下兩篇(其實本來是一篇,後來太長,於是拆之)。下篇介紹Record級別的操作,上篇介紹除Record以外的操作,如對database和collection的操作等。 其實,這些操作在MongoDB官網提供的Quick Ref

MongoDB之——命令操作

MongoDB shell 不僅僅是一個互動式的 shell,它也支援執行指定 javascript 檔案,也支援執行指定的命令片斷。有了這個特性,就可以將 MongoDB 與 linux shell 完美結合,完成大部分的日常管理和維護工作。1、通過 eval 引數執行指定

MongoDB之——基於Shell命令操作記錄

一、插入記錄下面我們來建立一個 test 的集合並寫入一些資料. 建立兩個物件 j 和 t , 並儲存到集合中去.在例子裡 “>” 來表示是 shell 輸入提示符> j = { name : "mongo" }; {"name" : "mongo"} >

mongodb命令操作命令詳解(增刪改查、高階查詢)

本文為上文的續篇,主要講解mongodb在cmd的直接操作命令,我的mongodb是安裝在d:\mongodb下 1,mongodb啟動服務 : 命令列方式啟動: . 直接cmd下進入mongodb的bin目錄,輸入mongod.exe –dbpath

對於mongodb在linux上的的安裝與其簡單命令操作的學習回顧

    今天培訓主要學習了MongoDB的安裝與簡單操作以及關於NoSQL的一點概念性的知識,在此對所操作的MongoDB命令進行簡單回顧 1.MongoDB的安裝 與網上的教程無太多出入,Linux系統下直接通過終端輸入命令列 sudo apt-get install m

Linux下Mongodb安裝,命令操作和sql語句

--logappend --port=27017 --fork 5. 引數解釋: --dbpath 資料庫路徑(資料檔案)--logpath 日誌檔案路徑--master 指定為主機器--slave 指定為從機器--source 指定主機器的IP地址--pologSize 指定日誌檔案大小不超過64M.因為

MongoDB常用的命令操作

一、啟動mongo服務 執行指令碼./mongod 可以通過-dbpath來指定資料庫路徑 從日誌上可以看到mongo服務的預設配置資訊,還可一看到每一個連線到mongo服務的客戶端的資訊,已經客戶端操作資訊 二、連線mongo服務 1、連線本機mongo服務 執行指令碼

mongodb基本命令操作

mongodb建立資料庫 use dbname mongodb檢視資料庫 show dbs 檢視資料庫下面的表 show collections 查詢表裡的資料 db.表名.find() mongodb向表裡插入一條資料 ./mongofiles -d camp

MYSQL命令操作基本語句

首先進入MYSQL命令列控制介面:   1. 查詢所有資料庫: show databases;  (分號不能少) 2 進入某一資料庫 use + 資料庫名 + database;   Database changed表明已經

嵌入式命令操作(可移植性)

本文件基於stm32f103並移植到F407, MSP430,以及s3c2440 最終效果如下: 以上多餘列印是除錯時解析bug用的,可以去除。 本文參考u-boot命令列,重點部分有三個:①資料定義 ②獲取串列埠資料(1個位元組) ③解析資料 資料定義 typedef v

Git入門(安裝及基礎命令操作

一、安裝 1、Mac   在Mac中安裝Git的方法不止一種。最簡單的要數通過Xcode命令列工具。對於Mavericks(10.9)或更高版本的作業系統,當你第一次嘗試在終端執行git命令時,系統會自動檢查是否已安裝Git;如果未安裝,則會提示你安裝它。如果希望獲得更高的版本,也可以通過二進位制安裝程式

linux 作業系統下簡單的命令操作

一:   配置linux 作業系統虛擬主機     首先安裝一個虛擬機器(百度上面有很多哦) , 我主要使用的是VMware workstation 然後 下載一個centos映象6..5到7都可以;   然後用VMware安裝下載好的centos 配置好語言 , 使用者名稱 , 密

2018年10月31日Java學習之常用的命令操作

1.常用的命令列操作 win+r調出並輸入cmd. 進入D盤:D:回車進入D盤:D:回車 D盤下的目錄DIR回車 建立目錄md 2018年10月31日 那麼建立了一個2018年10月31日的目錄(目前還在d盤目錄) 進入2018年10月31日的目錄 cd

【看這一篇就夠了】kubernetes入門命令操作(例項演示)

寫在前面:網上找了好久終於找到了期盼已久的、一個一眼就能理解的kubernetes“整體全過程”文章。 建議看這篇文章可以結合kubernetes官網(www.kubernetes.io)的Tutorial進行演練,效果很好。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

hadoop系統 hdfs 命令操作

轉自:https://blog.csdn.net/sjhuangx/article/details/79796388 Hadoop檔案系統shell命令列表: https://hadoop.apache.org/docs/current/hadoop-project-dist/hado

shell 從檔案中讀取批量檔名並做命令操作

222檔案內容: /home/zhangsuosheng/Desktop/9-30/9_30/1bak/1538291162.png /home/zhangsuosheng/Desktop/9-30/9_30/1bak/1538291212.png /home/zhangsuosheng/Deskto

HDFS基本命令操作與簡單API使用

1.開啟叢集命令  start-dfs.sh 2.檢視幫助 hdfs dfs -help 3.檢視當前目錄資訊 hdfs dfs -ls / 4.從本地上傳檔案  hdfs dfs -put data.txt  /wc/in 5.從hdfs下載

大資料之HBase命令操作

1、課程簡介 本文章先會介紹HBase命令列,接著會介紹java程式碼對hbase中的表進行增刪改查。 本文章中所有命令均在CentOS-6.4-x86_64,hadoop-2.5.2,jdk1.8.0_152,zookeeper-3.4.11,hbase-1.2.6中執行通過,為減少linux許

命令操作oracle,顯示英文而不是中文

在環境變數,而不是系統變數,平常總用系統變數,這次用環境變數可以解決中文顯示問題,增加環境變數,如下: 設定NLS_LANG為SIMPLIFIED CHINESE_CHINA.ZHS16GBK 具體操作如下圖: 右鍵我的電腦,選擇屬性按鈕   &nb

mysql 命令操作(一)管理操作

1.查詢所有存在的資料庫 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysq