天天看點

MongoDB文檔翻譯-mongo Shellmongo Shell

說明:英文原文位址:https://docs.mongodb.com/v3.2/mongo/。

本文章屬個人翻譯,作個人學習之用,如有雷同,純屬巧合。如有錯誤之處,歡迎指正。

mongo Shell

介紹

mongo

shell是MongoDB的互動式javascript界面。可用使用

mongo

shell來查詢和更新資料,當然可也可執行管理操作。

mongo

shell是MongoDB釋出的元件之一。一旦安裝并啟動MongoDB,可用用

mongo

shell連接配接到你運作的MongoDB執行個體。

MongoDB手冊中的大部分例子都是使用

mongo

shell的,很多驅動對MongoDB提供了類似的界面。

啟動mongo Shell

重要提示:

啟動

mongo

shell前請確定MongoDB已經運作。

要啟動

mongo

shell并連接配接到運作在

localhost

上預設端口的MongoDB執行個體:

    1. 在終端中,切換到你的mongodb安裝目錄
      cd mongodb安裝目錄
                 
    2. 輸入 ./bin/mongo 啟動

      mongo

      ./bin/mongo
                 
      如果你已經把mongodb安裝目錄/bin添加到

      PATH

      環境變量,隻需輸入

      mongo

      即可,而不用

      ./bin/mongo

選項

當不用任何參數運作

mongo

時,

mongo

shell會試圖連接配接到運作在本地,監聽27017端口的MongoDB執行個體。要指定不同的主機或端口号,或者其它選項,請參考啟動mongo示例和mongo參考,它們提供了可用選項的詳細資訊。

.mongorc.js 檔案

mongo

啟動時,會在使用者的HOME目錄中檢查一個名為

.mongorc.js

的javascript檔案,如果找到了,在第一次顯示提示之前,

mongo

會解釋

.mongorc.js

檔案的内容。如果你用

mongo

shell來執行javascript檔案或者表達式,在指令行中使用

--eval

選項,或者給

mongo

指定一個.js檔案,

mongo

shell将會處理完javascript後讀取

.mongorc.js

檔案并執行。可以用

--norc

選項來禁止

.mongorc.js

執行。

使用mongo Shell工作

要顯示正在使用的資料庫,用:

db
           

該操作應該傳回

test

,它是預設的資料庫。要切換資料庫,用

use <db>

,如下:

use <database>
           

要列出可用的資料庫,用

show dbs

db.getSiblingDB()

可用列出目前資料庫之外的其它資料庫,同時不會鐵環你的目前資料庫上下文。

你可以切換到一個不存在的資料庫。當第一次在該資料庫中存儲資料時,如建立一個集合,MongoDB會建立該資料庫。如,以下代碼在

insert()

操作時同時建立了資料庫

myNewDatabase

和集合

myCollection

use myNewDatabase
db.myCollection.insert( { x:  } );
           

db.myCollection.insert()

mongo

shell中可用的方法之一。

  • db

    指向目前資料庫
  • myCollection

    是集合的名字

如果

mongo

shell不接受集合的名字,例如,名字包含空格,短橫線,或者以數字開頭,你可以用另一種文法來指代集合,如:

db["3test"].find()

db.getCollection("3test").find()
           

格式化列印結果

db.collection.find()

傳回結果的遊标,然而,在

mongo

shell中,如果遊标沒有指派給用var定義的變量,遊标會自動疊代20次直到終止,列印結果中前20個文檔。

mongo

shell會提示Type it以疊代另一個20次。

要格式化列印結果,可用添加

.pretty()

到操作後面,如:

db.myCollection.find().pretty()
           

此外,你可以在

mongo

shell中用如下顯示的列印方法:

  • print()

    ,非格式化列印
  • print(tojson(<obj>))

    ,列印

    JSON

    格式化後的資料,等價于

    printjson()

  • printjson()

    ,列印

    JSON

    格式化後的資料,等價于

    print(tojson(<obj>))

欲知更多關于

mongo

shell中處理遊标的資訊和例子,請查閱在mongo Shell中疊代遊标。參考遊标幫助以從

mongo

shell中檢視遊标幫助清單。

mongo Shell中的多行操作

如果用左圓括号

'('

,左大括号

'{'

,或左方括号

'['

作為一行的結尾,後續的行就會一省略号

"..."

開頭,直到你輸入相應的右圓括号

'}'

,右大括号

'}'

或右方括号

']'

。在執行代碼前,

mongo

shell會等待這些括号的閉合。如下:

> if ( x >  ) {
... count++;
... print (x);
... }
           

連續輸入兩個空行可退出連續模式,如下:

> if (x > 
...
...
>
           

Tab補全其它鍵盤快捷鍵

mongo

shell支援鍵盤快捷鍵

  • 可以用上下方向按鍵在指令曆史中滾動。參考

    .dbshell

    以獲得更多關于

    .dbshell

    檔案的資訊。
  • Tab

    鍵來自動完成或者列出可能的補全項,下面的例子用

    Tab

    鍵來補全以字母

    'c'

    開頭的方法名:
    db.myCollection.c<Tab>
               
    ​ 由于有很多以字母

    'c'

    開頭的集合方法,

    Tab

    操作将會列出以

    'c'

    開頭的一系列方法。

至于完整的快捷方法清單,請移步Shell鍵盤快捷鍵。

退出Shell

要退出shell,輸入

quit()

或用

<Ctrl+C>

快捷鍵。

繼續閱讀