本文更新於2023-05-08,使用MongoDB 4.4.5。
bsondump
BSON查看工具。
bsondump [OPTION] BSONFILENAME
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --version:查看版本。
mongo
同mongosh。MongoDB 6.0使用mongosh替換mongo。
mongod
MongoDB服務器。
mongod [OPTION]
mongod --replSet REPLSET_NAME
mongod --repair [--repairpath DST_DIR] [--dbpath DIR]
OPTION可為:
- 通用選項:
- --auth:啟用身份驗證。
- --bind_ip:監聽的IP。
- --config|-f FILENAME:配置文件。命令行指定的選項可覆蓋配置文件中的值。
- --fork:創建后台運行的子進程。需同時使用--logpath。
- --help|-h:查看幫助。
- --logappend:以追加方式寫入日志文件。需同時使用--logpath。
- --logpath FILENAME:日志輸出文件。如不指定則輸出至標准輸出。
- --noscripting:禁止執行JavaScript腳本。注意,某些shell輔助函數依賴於JavaScript腳本。
- --nounixsocket:不監聽UNIX套接字。
- --port PORT:監聽的端口。默認為27017。
- --profile LEVEL:設置系統分析器等級。0為關閉系統分析器,1為只記錄慢查詢,2為記錄所有操作。
- --quiet:不輸出日志。
- --slowms MICROSECONDS:設置系統分析器的慢查詢閾值。單位為毫秒。
- --verbose|-v:日志級別。不使用該選項則為最低值0;-vvvvv為最高值5(記錄幾乎所有操作,包括每一個請求處理的內容)。
- --version:查看版本。
- 副本集選項:
- --replSet REPLSET_NAME:指定副本集名稱,作為副本集節點啟動。不使用此選項,則以單機模式啟動。
- 分片選項:
- --configsvr:作為配置服務器啟動。默認端口為27019,默認數據目錄為/data/configdb。
- --shardsvr:作為分片啟動。默認端口為27018,
- 存儲選項:
- --dbpath DIR:數據目錄。默認為/data/db(Windows為當前驅動器)。
- --directoryperdb:每個數據庫存放在單獨的目錄中。
- --journalCommitInterval MICROSECONDS:日記系統進行提交的時間間隔。單位為毫秒,最小為2,最大為500。
- --noprealloc:禁止預分配數據文件。
- --repair:修復數據。不會監聽端口,但會輸出日志。
- --repairpath DST_DIR:指定修復時復制文件的目標目錄。
- --syncdelay SECONDS:將臟頁刷新到磁盤的時間間隔。單位為秒。
mongodump
數據備份工具。備份過程中會繼續執行寫入操作。
mongodump [OPTION]
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --version:查看版本。
- 連接選項:
- --host HOST:主機名。
- --port PORT:端口。
- 身份驗證選項:
- --authenticationDatabase AUTH_DBNAME:身份校驗使用的數據庫。
- --password|-p [PASSWORD]:指定密碼。如不指定PASSWORD,則於交互界面提示輸入密碼。
- --username|-u USERNAME:指定用戶名。
- 命名空間選項:
- --db|-d DBNAME:只備份指定的數據庫。
- 輸出選項:
- --excludeCollection COLLECTIONNAME:不進行備份的集合。可指定多次。
- --gzip:將.bson數據文件和.metadata.json元數據文件使用gzip壓縮。
- --oplog:同時轉儲備份過程中的操作日志oplog,以獲得備份時間點的快照。如備份副本集,必需使用此選項。
- --out|-o DUMPDIR:輸出目錄。默認為dump。輸出目錄中包含若干個名字為數據庫名的目錄,每個目錄中包含若干個集合名開頭的.bson數據文件和.metadata.json元數據文件。
如連接至副本集,則會自動選擇一個備份節點執行備份操作。
如連接至mongos,則會備份所有分片。
mongoexport
數據導出工具。
mongofiles
GridFS工具。
mongofiles [OPTION] COMMAND [ARG]
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --version:查看版本。
- 連接選項:
- --host HOST:主機名。
- --port PORT:端口。
- 身份驗證選項:
- --authenticationDatabase AUTH_DBNAME:身份校驗使用的數據庫。
- --password|-p [PASSWORD]:指定密碼。如不指定PASSWORD,則於交互界面提示輸入密碼。
- --username|-u USERNAME:指定用戶名。
- 存儲選項:
- --db|-d DBNAME:指定數據庫。
- --local|-l LOCALFILENAME:本地文件名,只用於
put
和get
子命令。
COMMAND [ARG]可為(FILENAME可為文件路徑):
- delete FILENAME:從GridFS中刪除文件。
- get FILENAME:將GridFS中的文件下載到文件系統中。
- list [PREFIX]:列出GridFS中的文件。以前綴匹配查找。如不指定前綴,則列出所有文件。
- put FILENAME:將文件系統中的文件上傳到GridFS。
- search SUBSTRING:在GridFS中搜索文件。搜索子串。
mongoimport
數據導入工具。
mongorestore
數據恢復工具。
mongorestore [OPTION] [DUMPDIR|BSONFILENAME]
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --version:查看版本。
- 連接選項:
- --host HOST:主機名。
- --port PORT:端口。
- 身份驗證選項:
- --authenticationDatabase AUTH_DBNAME:身份校驗使用的數據庫。
- --password|-p [PASSWORD]:指定密碼。如不指定PASSWORD,則於交互界面提示輸入密碼。
- --username|-u USERNAME:指定用戶名。
- 命名空間選項:
- --collection|-c COLLECTIONNAME:只恢復指定的集合。此選項已廢棄。
- --db|-d DBNAME:只恢復指定的數據庫。此選項已廢棄。
- --nsFrom DBNAME.COLLECTIONNAME:重命名時的源命名空間。必需指定對應的--nsTo。DBNAME和COLLECTIONNAME均可使用*匹配所有。
- --nsInclude DBNAME.COLLECTIONNAME:只恢復指定的命名空間。DBNAME和COLLECTIONNAME均可使用*匹配所有。
- --nsTo DBNAME.COLLECTIONNAME。重命名時的目標命名空間。必需指定對應的--nsFrom。DBNAME和COLLECTIONNAME均可使用*匹配所有。
- 輸入選項:
- --dir DUMPDIR:需恢復的備份數據目錄。默認為dump。根據不同情況,此目錄需包含若干個名字為數據庫名的目錄,或需包含若干個集合名開頭的.bson數據文件和.metadata.json元數據文件。
- --gzip:從使用gzip壓縮方式備份的數據中恢復。
- --oplogReplay:重放操作日志oplog,以獲得備份時間點的快照。
- 恢復選項:
- --drop:進行數據替換,在恢復集合前先刪除之。
如連接至mongos,則會恢復所有分片。
mongos
分片路由。
mongos [OPTION]
mongos --configdb CONFIG
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --maxConns N:指定最大連接數量。
- --port PORT:監聽的端口。默認為27017。
- --version:查看版本。
- 分片選項:
- --configdb CONFIG:指定配置服務器,格式為REPLSET_NAME/HSOT_PORT<,...,HSOT_PORT>。
mongosh
JavaScript shell。
mongo [OPTION] [DBNAME|HOST[:PORT][/DBNAME]|MONGODB_URI] [JS_FILENAME[ ...]]
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --host HOST:主機名。
- --nodb:啟動shell時不連接到任何mongod。
- --norc:啟動shell時不加載用戶主目錄下的.mongorc.js。默認會加載。
- --port PORT:端口。
- --quiet:不打印連接成功后的提示信息。
- --version:查看版本。
- 身份驗證選項:
- --authenticationDatabase AUTH_DBNAME:身份校驗使用的數據庫。
- --password|-p [PASSWORD]:指定密碼。如不指定PASSWORD,則於交互界面提示輸入密碼。
- --username|-u USERNAME:指定用戶名。
如不指定DBNAME或HOST[:PORT][/DBNAME或MONGODB_URI,默認連接到localhost:27017/test。
MONGODB_URI為連接字符串。官方文檔為:https://www.mongodb.com/docs/v6.0/reference/connection-string/。格式為:mongodb://[USERNAME[:PASSWORD]@]HOST[:PORT][,...,HOST1[:PORT1]][/[DBNAME]][?NAME=VALUE[&...&NAME1=VALUE1]]
。NAME=VALUE可為:
- authSource=AUTH_DBNAME:身份校驗使用的數據庫。
- replicaSet=REPLSET_NAME:副本集名字。如使用此參數,可指定任意個(並不需要所有)HOST[:PORT],會自動選擇主節點連接。
如指定JS_FILENAME,則依次執行腳本文件然后退出(相對路徑根據shell運行目錄)。否則,以交互方式使用shell。
mongostat
狀態統計工具。每隔一段時間輸出一次,統計自上一次輸出以來的信息。可連接至副本集和分片集群。
mongostat [OPTION] [INTERVAL_SECONDS]
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --version:查看版本。
- 連接選項:
- --host HOST:主機名。
- --port PORT:端口。
- 身份驗證選項:
- --authenticationDatabase AUTH_DBNAME:身份校驗使用的數據庫。
- --password|-p [PASSWORD]:指定密碼。如不指定PASSWORD,則於交互界面提示輸入密碼。
- --username|-u USERNAME:指定用戶名。
- 狀態選項:
- --discover:尋找副本集或分片集群的所有節點,針對每個節點也輸出一行信息。
輸出包含以下字段:
- host:主機地址。
- insert:插入的次數。
- query:查詢的次數。
- update:更新的次數。
- delete:刪除的次數。
- getmore:查詢游標時獲取更多數據的次數。
- command:執行命令的次數。
- dirty:
- used:
- flushes:數據刷新至磁盤的次數。
- mapped:映射的內存大小。通常約等於數據目錄的大小。
- vsize:正在使用的虛擬內存大小。通常為數據目錄的2倍(一次用於映射文件,一次用於日記系統)。
- res:正在使用的內存大小。通常應盡量接近機器的內存大小。
- faults:
- qrw:讀寫操作的隊列大小。即被阻塞的讀寫操作的數量。讀和寫以“|”分隔。
- arw:讀寫的活躍客戶端數量。即正在進行讀寫的客戶端的數量。讀和寫以“|”分隔。
- net_in:通過網絡傳輸進來的字節數。不必和操作系統的統計相等。
- net_out:通過網絡傳輸出去的字節數。不必和操作系統的統計相等。
- conn:打開的連接數。包括輸入和輸出連接。
- set:副本集名稱。
- repl:副本集的節點狀態。
- time:統計的時間點。
mongotop
集合實時監控工具。每隔一段時間輸出一次。
mongotop [OPTION] [INTERVAL_SECONDS]
OPTION可為:
- 通用選項:
- --help|-h:查看幫助。
- --version:查看版本。
- 連接選項:
- --host HOST:主機名。
- --port PORT:端口。
- 身份驗證選項:
- --authenticationDatabase AUTH_DBNAME:身份校驗使用的數據庫。
- --password|-p [PASSWORD]:指定密碼。如不指定PASSWORD,則於交互界面提示輸入密碼。
- --username|-u USERNAME:指定用戶名。
- 輸出選項:
- --locks:查看每個數據庫的鎖狀態。