天天看點

mongo Shell方法mongo Shell方法

mongo Shell方法

在此頁

  • 采集
  • 光标
  • 資料庫
  • 查詢計劃緩存
  • 批量寫入操作
  • 使用者管理
  • 角色管理
  • 複寫
  • 分片
  • 子流程
  • 建設者
  • 連接配接
  • 本機

MONGODB中的JAVASCRIPT

盡管這些方法使用JavaScript,但是與MongoDB的大多數互動都不使用JavaScript,而是使用 互動應用程式語言中的慣用驅動程式。

注解

有關特定方法的詳細資訊,包括文法和示例,請單擊特定方法以轉到其參考頁。

集合

名稱 描述
db.collection.aggregate() 提供對聚合管道的通路。
db.collection.bulkWrite() 提供批量寫入操作功能。
db.collection.count() 包裝計數的集合或相比對的查詢傳回中的檔案數量的計數。
db.collection.copyTo() 不推薦使用。包裝eval以在單個MongoDB執行個體中的集合之間複制資料。
db.collection.createIndex() 在集合上建立索引。
db.collection.dataSize() 傳回集合的大小。将size字段包裝在collStats的輸出中。
db.collection.deleteOne() 删除集合中的單個文檔。
db.collection.deleteMany() 删除集合中的多個文檔。
db.collection.distinct() 傳回具有指定字段不同值的文檔數組。
db.collection.drop() 從資料庫中删除指定的集合。
db.collection.dropIndex() 删除集合上的指定索引。
db.collection.dropIndexes() 删除集合上的所有索引。
db.collection.ensureIndex() 不推薦使用。使用db.collection.createIndex()。
db.collection.explain() 傳回有關各種方法的查詢執行的資訊。
db.collection.find() 對集合執行查詢并傳回遊标對象。
db.collection.findAndModify() 以原子方式修改并傳回單個文檔。
db.collection.findOne() 執行查詢并傳回單個文檔。
db.collection.findOneAndDelete() 查找單個文檔并将其删除。
db.collection.findOneAndReplace() 查找單個文檔并将其替換。
db.collection.findOneAndUpdate() 查找單個文檔并進行更新。
db.collection.getIndexes() 傳回描述集合中現有索引的文檔數組。
db.collection.getShardDistribution() 對于分片群集中的集合,db.collection.getShardDistribution()報告塊配置設定的資料。
db.collection.getShardVersion() 分片群集的内部診斷方法。
db.collection.group() 不推薦使用。提供簡單的資料聚合功能。通過鍵将集合中的文檔分組,然後處理結果。使用aggregate()進行更複雜的資料聚合。
db.collection.insert() 在集合中建立一個新文檔。
db.collection.insertOne() 在集合中插入新文檔。
db.collection.insertMany() 在集合中插入幾個新文檔。
db.collection.isCapped() 報告集合是否為上限集合。
db.collection.latencyStats() 傳回集合的延遲統計資訊。
db.collection.mapReduce() 執行map-reduce樣式資料聚合。
db.collection.reIndex() 重建集合上所有現有的索引。
db.collection.replaceOne() 替換集合中的單個文檔。
db.collection.remove() 從集合中删除文檔。
db.collection.renameCollection() 更改集合的名稱。
db.collection.save() 提供圍繞insert()和update()的包裝器以插入新文檔。
db.collection.stats() 報告收集狀态。提供圍繞collStats的包裝。
db.collection.storageSize() 報告集合使用的總大小(以位元組為機關)。在collStats輸出的storageSize字段周圍提供包裝器。
db.collection.totalSize() 報告集合的總大小,包括集合中所有文檔和所有索引的大小。
db.collection.totalIndexSize() 報告集合上的索引使用的總大小。在collStats輸出的totalIndexSize字段周圍提供包裝器。
db.collection.update() 修改集合中的文檔。
db.collection.updateOne() 修改集合中的單個文檔。
db.collection.updateMany() 修改集合中的多個文檔。
db.collection.validate() 對集合執行診斷操作。

遊标

名稱 描述
cursor.addOption() 添加特殊的有線協定标志,以修改查詢的行為。”
cursor.batchSize() 控制MongoDB在單個網絡消息中傳回給用戶端的文檔數。
cursor.close() 關閉遊标并釋放關聯的伺服器資源。
cursor.collat​​ion() 指定db.collection.find()傳回的遊标的排序規則。
cursor.comment() 在查詢中附加注釋,以允許在日志和system.profile集合中進行追溯。
cursor.count() 修改光标以傳回結果集中的文檔數,而不是文檔本身。
cursor.explain() 報告有關遊标的查詢執行計劃。
cursor.forEach() 對光标中的每個文檔應用JavaScript函數。
cursor.hasNext() 如果遊标包含文檔并且可以疊代,則傳回true。
cursor.hint() 強制MongoDB對查詢使用特定的索引。
cursor.itcount() 通過擷取和疊代結果集來計算遊标用戶端中的文檔總數。
cursor.limit() 限制遊标結果集的大小。
cursor.map() 将函數應用于遊标中的每個文檔,并在數組中收集傳回值。
cursor.maxScan() 指定要掃描的最大項目數;用于收集掃描的文檔,用于索引掃描的鍵。
cursor.maxTimeMS() 指定用于遊标的處理操作的累積時間限制(以毫秒為機關)。
cursor.max() 指定遊标的排他上限索引。與cursor.hint()一起使用
cursor.min() 指定一個遊标的下限索引。與cursor.hint()一起使用
cursor.next() 傳回遊标中的下一個文檔。
cursor.noCursorTimeout() 訓示伺服器避免在一段時間不活動後自動關閉遊标。
cursor.objsLeftInBatch() 傳回目前遊标批進行中剩餘的文檔數。
cursor.pretty() 配置光标以易于閱讀的格式顯示結果。
cursor.readConcern() 指定對find()操作的讀取關注。
cursor.readPref() 指定對遊标的讀取首選項,以控制用戶端如何将查詢定向到副本集。
cursor.returnKey() 修改光标以傳回索引鍵而不是文檔。
cursor.showRecordId() 将内部存儲引擎ID字段添加到光标傳回的每個文檔中。
cursor.size() 應用skip()和limit()方法後,傳回光标中文檔的計數。
cursor.skip() 傳回一個遊标,該遊标僅在通過或跳過多個文檔後才開始傳回結果。
cursor.snapshot() 強制光标使用_id字段上的索引。確定遊标隻傳回一次有關_id字段值的每個文檔。
cursor.sort() 傳回根據排序規範排序的結果。
cursor.tailable() 将光标标記為可尾。僅對有上限的集合上的光标有效。
cursor.toArray() 傳回一個數組,其中包含光标傳回的所有文檔。

資料庫

名稱 描述
db.cloneCollection() 直接在MongoDB執行個體之間複制資料。包裝cloneCollection。
db.cloneDatabase() 将資料庫從遠端主機複制到目前主機。包裝克隆。
db.commandHelp() 傳回資料庫指令的幫助資訊。
db.copyDatabase() 将資料庫複制到目前主機上的另一個資料庫。包裝copydb。
db.createCollection() 建立一個新集合。通常用于建立上限集合。
db.createView() 建立一個視圖。
db.currentOp() 報告目前正在進行的操作。
db.dropDatabase() 删除目前資料庫。
db.eval() 不推薦使用。将JavaScript函數傳遞給mongod執行個體以進行伺服器端JavaScript評估。
db.fsyncLock() 将寫重新整理到磁盤并鎖定資料庫,以防止寫操作并協助備份操作。包裝fsync。
db.fsyncUnlock() 允許在db.fsyncLock()鎖定的資料庫上繼續寫入。
db.getCollection() 傳回一個集合對象。用于通路名稱在mongo shell中無效的集合。
db.getCollectionInfos() 傳回目前資料庫中所有集合的集合資訊。
db.getCollectionNames() 列出目前資料庫中的所有集合。
db.getLastError() 檢查并傳回上一個操作的狀态。包裝getLastError。
db.getLastErrorObj() 傳回上一次操作的狀态文檔。包裝getLastError。
db.getLogComponents() 傳回日志消息的詳細程度。
db.getMongo() 傳回目前連接配接的Mongo()連接配接對象。
db.getName() 傳回目前資料庫的名稱。
db.getPrevError() 傳回一個狀态文檔,其中包含自上次重置錯誤以來的所有錯誤。包裝getPrevError。
db.getProfilingLevel() 傳回資料庫操作的目前概要分析級别。
db.getProfilingStatus() 傳回反映目前配置檔案級别和配置檔案門檻值的文檔。
db.getReplicationInfo() 傳回包含複制統計資訊的文檔。
db.getSiblingDB() 提供對指定資料庫的通路。
db.help() 顯示常見資料庫對象方法的描述。
db.hostInfo() 傳回包含有關運作MongoDB的系統的資訊的文檔。包裝hostInfo
db.isMaster() 傳回報告副本集狀态的文檔。
db.killOp() 終止指定的操作。
db.listCommands() 顯示常見資料庫指令的清單。
db.loadServerScripts() 将目前資料庫的system.js集合中的所有腳本加載到Shell會話中。
db.logout() 結束已認證的會話。
db.printCollectionStats() 列印每個集合的統計資訊。包裝db.collection.stats()。
db.printReplicationInfo() 從主資料庫的角度列印副本集狀态的報告。
db.printShardingStatus() 列印分片配置和塊範圍的報告。
db.printSlaveReplicationInfo() 從第二副本的角度列印副本集狀态的報告。
db.repairDatabase() 在目前資料庫上運作修複例程。
db.resetError() 重置db.getPrevError()和getPrevError傳回的錯誤消息。
db.runCommand() 運作資料庫指令。
db.serverBuildInfo() 傳回一個文檔,該文檔顯示mongod執行個體的編譯參數。包裝buildinfo。
db.serverCmdLineOpts() 傳回一個文檔,其中包含有關用于啟動MongoDB執行個體的運作時的資訊。包裝getCmdLineOpts。
db.serverStatus() 傳回一個提供資料庫程序狀态概述的文檔。
db.setLogLevel() 設定單個日志消息的詳細程度。
db.setProfilingLevel() 修改目前資料庫分析級别。
db.shutdownServer() 幹淨安全地關閉目前mongod或mongos程序。
db.stats() 傳回報告目前資料庫狀态的文檔。
db.version() 傳回mongod執行個體的版本。
db.upgradeCheck() 對特定資料庫或集合的更新準備情況進行初步檢查。
db.upgradeCheckAllDBs() 對所有資料庫和集合的更新準備情況進行初步檢查。

查詢計劃緩存

名稱 描述
db.collection.getPlanCache() 傳回一個接口,以通路查詢計劃緩存對象和集合的相關PlanCache方法。”
PlanCache.help() 顯示可用于集合的查詢計劃緩存的方法。可通過特定集合的計劃緩存對象通路,即db.collection.getPlanCache()。help()。
PlanCache.listQueryShapes() 顯示存在緩存的查詢計劃的查詢形狀。可通過特定集合的計劃緩存對象通路,即db.collection.getPlanCache()。listQueryShapes()。
PlanCache.getPlansByQuery() 顯示指定查詢形狀的緩存查詢計劃。可通過特定集合的計劃緩存對象通路,即db.collection.getPlanCache()。getPlansByQuery()。
PlanCache.clearPlansByQuery() 清除指定查詢形狀的緩存查詢計劃。可通過特定集合的計劃緩存對象通路,即db.collection.getPlanCache()。clearPlansByQuery()
PlanCache.clear() 清除集合的所有緩存查詢計劃。可通過特定集合的計劃緩存對象通路,即db.collection.getPlanCache()。clear()。

批量寫操作

名稱 描述
塊() 批量操作生成器。
db.collection.initializeOrderedBulkOp() 初始化Bulk()操作建構器以擷取操作的有序清單。
db.collection.initializeUnorderedBulkOp() 初始化Bulk()操作建構器以擷取無序的操作清單。
Bulk.insert() 将插入操作添加到操作清單中。
Bulk.find() 指定更新或删除操作的查詢條件。
Bulk.find.collat​​ion() 指定查詢條件的排序規則。
Bulk.find.removeOne() 将單個文檔删除操作添加到操作清單中。
Bulk.find.remove() 将多文檔删除操作添加到操作清單中。
Bulk.find.replaceOne() 将單個文檔替換操作添加到操作清單中。
Bulk.find.updateOne() 将單個文檔更新操作添加到操作清單中。
Bulk.find.update() 将多重更新操作添加到操作清單中。
Bulk.find.upsert() 指定upsert: 對于更新操作為true。
Bulk.execute() 批量執行操作清單。
Bulk.getOperations() 傳回在Bulk()操作對象中執行的寫操作數組。
Bulk.tojson() 傳回一個JSON文檔,該文檔包含Bulk()操作對象中的操作和批處理數。
Bulk.toString() 以字元串形式傳回Bulk.tojson()結果。

使用者管理

名稱 描述
db.auth() 向資料庫驗證使用者。
db.createUser() 建立一個新使用者。
db.updateUser() 更新使用者資料。
db.changeUserPassword() 更改現有使用者的密碼。
db.removeUser() 不推薦使用。從資料庫中删除使用者。
db.dropAllUsers() 删除與資料庫關聯的所有使用者。
db.dropUser() 删除一個使用者。
db.grantRolesToUser() 向使用者授予角色及其特權。
db.revokeRolesFromUser() 從使用者删除角色。
db.getUser() 傳回有關指定使用者的資訊。
db.getUsers() 傳回有關與資料庫關聯的所有使用者的資訊。

角色管理

名稱 描述
db.createRole() 建立一個角色并指定其特權。
db.updateRole() 更新使用者定義的角色。
db.dropRole() 删除使用者定義的角色。
db.dropAllRoles() 删除與資料庫關聯的所有使用者定義角色。
db.grantPrivilegesToRole() 将特權配置設定給使用者定義的角色。
db.revokePrivilegesFromRole() 從使用者定義的角色中删除指定的特權。
db.grantRolesToRole() 指定使用者定義角色從中繼承特權的角色。
db.revokeRolesFromRole() 從角色中删除繼承的角色。
db.getRole() 傳回指定角色的資訊。
db.getRoles() 傳回資料庫中所有使用者定義角色的資訊。

複制

名稱 描述
rs.add() 将成員添加到副本集。
rs.addArb() 将仲裁器添加到副本集。
rs.conf() 傳回副本集配置文檔。
rs.freeze() 阻止目前成員在一段時間内尋求選舉為主。
rs.help() 傳回副本集功能的基本幫助文本。
rs.initiate() 初始化新的副本集。
rs.printReplicationInfo() 從主資料庫的角度列印副本集狀态的報告。
rs.printSlaveReplicationInfo() 從第二副本的角度列印副本集狀态的報告。
rs.reconfig() 通過應用新的副本集配置對象來重新配置副本集。
rs.remove() 從副本集中删除成員。
rs.slaveOk() 設定目前連接配接的slaveOk屬性。不推薦使用。使用readPref()和Mongo.setReadPref()設定讀取首選項。
rs.status() 傳回包含有關副本集狀态資訊的文檔。
rs.stepDown() 使目前的主要成員成為迫使選舉的次要成員。
rs.syncFrom() 設定此副本內建員将從其進行同步的成員,進而覆寫預設的同步目标選擇邏輯。

分片

名稱 描述
sh._adminCommand() 針對admin資料庫運作資料庫指令,例如db.runCommand(),但可以确認它是針對mongos發出的。
sh.getBalancerLockDetails() 報告平衡器鎖定。
sh._checkFullName() 測試名稱空間以确定其格式是否正确。
sh._checkMongos() 測試是否将mongo shell連接配接到mongos執行個體。
sh._lastMigration() 報告上一次塊遷移。
sh.addShard() 添加一個碎片,以分片叢集。
sh.addShardTag() 在MongoDB 3.4中,此方法别名為sh.addShardToZone()。
sh.addShardToZone() 将分片與區域關聯。支援在分片群集中配置區域。
sh.addTagRange() 在MongoDB 3.4中,此方法别名為sh.updateZoneKeyRange()。
sh.updateZoneKeyRange() 将一系列分片密鑰與區域關聯。支援在分片群集中配置區域。
sh.removeTagRange() 在MongoDB 3.4中,此方法别名為sh.removeRangeFromZone()。
sh.removeRangeFromZone() 删除一系列分片鍵和區域之間的關聯。支援在分片群集中配置區域。
sh.disableBalancing() 在分片資料庫中的單個集合上禁用平衡。不會影響分片群集中其他集合的平衡。
sh.enableBalancing() 如果先前使用sh.disableBalancing()禁用了分片集合​​平衡器程序,則将其激活。
sh.enableSharding() 在特定資料庫上啟用分片。
sh.getBalancerHost() 自MongoDB 3.4起不推薦使用
sh.getBalancerState() 傳回一個布爾值以報告目前是否啟用了平衡器。
sh.help() 傳回sh方法的幫助文本。
sh.isBalancerRunning() 傳回一個布爾值以報告平衡器程序目前是否正在遷移塊。
sh.moveChunk() 遷移一個塊的分片叢集。
sh.removeShardTag() 在MongoDB 3.4中,此方法别名為sh.removeShardFromZone()。
sh.removeShardFromZone() 删除分片和區域之間的關聯。用于管理區域分片。
sh.setBalancerState() 啟用或禁用在分片之間遷移塊的平衡器。
sh.shardCollection() 為集合啟用分片。
sh.splitAt() 使用分片鍵的特定值作為分割點将現有的塊分為兩個塊。
sh.splitFind() 将包含與查詢比對的文檔的現有塊分為兩個大緻相等的塊。
sh.startBalancer() 啟用平衡器并等待平衡開始。
sh.status() 報告分片群集的狀态,如db.printShardingStatus()。
sh.stopBalancer() 禁用平衡器,并等待任何進行中的平衡回合完成。
sh.waitForBalancer() 内部。等待平衡器狀态更改。
sh.waitForBalancerOff() 内部。等待直到平衡器停止運作。
sh.waitForDLock() 内部。等待指定的分布式分片叢集鎖。
sh.waitForPingChange() 内部。等待分片群集中的一個mongos的 ping狀态更改。

名稱 描述
clearRawMongoProgramOutput() 供内部使用。
rawMongoProgramOutput() 供内部使用。
跑() 供内部使用。
runMongoProgram() 供内部使用。
runProgram() 供内部使用。
startMongoProgram() 供内部使用。
stopMongoProgram() 供内部使用。
stopMongoProgramByPid() 供内部使用。
stopMongod() 供内部使用。
waitMongoProgramOnPort() 供内部使用。
waitProgram() 供内部使用。

構造函數

名稱 描述
日期() 建立一個日期對象。預設情況下,建立一個包含目前日期的日期對象。
UUID() 将32位元組的十六進制字元串轉換為UUID BSON子類型。
ObjectId() 傳回一個ObjectId。
ObjectId.getTimestamp() 傳回ObjectId的時間戳部分。
ObjectId.toString() 顯示ObjectId的字元串表示形式。
ObjectId.valueOf() 将ObjectId 的str屬性顯示為十六進制字元串。
WriteResult() 包裝來自write方法的結果集。
WriteResult.hasWriteError() 傳回一個布爾值,指定結果是否包括WriteResult.writeError。
WriteResult.hasWriteConcernError() 傳回一個布爾值,指定結果是否包括WriteResult.writeConcernError。
BulkWriteResult() 包裝來自Bulk.execute()的結果集。

連接配接

名稱 描述
Mongo.getDB() 傳回資料庫對象。
Mongo.getReadPrefMode() 傳回MongoDB連接配接的目前讀取首選項模式。
Mongo.getReadPrefTagSet() 傳回為MongoDB連接配接設定的讀取首選項标簽。
Mongo.setReadPref() 設定MongoDB連接配接的讀取首選項。
Mongo.setSlaveOk() 允許對目前連接配接的操作從輔助成員中讀取。
Mongo() 建立一個新的連接配接對象。
connect() 連接配接到MongoDB執行個體和該執行個體上的指定資料庫。

本機

名稱 描述
貓() 傳回指定檔案的内容。
版() 傳回mongo shell執行個體的目前版本。
CD光牒() 将目前工作目錄更改為指定路徑。
睡覺() 将mongo shell 挂起給定的時間。
copyDbpath() 複制本地dbPath。供内部使用。
resetDbpath() 删除本地dbPath。供内部使用。
fuzzFile() 供内部使用以支援測試。
getHostName() 傳回運作mongo shell 的系統的主機名。
getMemInfo() 傳回報告外殼程式使用的記憶體量的文檔。
主機名() 傳回運作外殼程式的系統的主機名。
_isWindows() 如果外殼程式在Windows系統上運作,則傳回true;否則,傳回true。如果是Unix或Linux系統,則傳回false。
listFiles() 傳回文檔數組,這些文檔給出目錄中每個對象的名稱和大小。
加載() 在外殼中加載并運作一個JavaScript檔案。
ls() 傳回目前目錄中檔案的清單。
md5sumFile() 指定檔案的md5哈希。
mkdir() 在指定路徑下建立目錄。
pwd() 傳回目前目錄。
退出() 退出目前的shell會話。
_rand() 傳回介于0和1之間的随機數。
removeFile() 從本地檔案系統中删除指定的檔案。
setVerboseShell() 配置mongo shell以報告操作時間。
_srand() 供内部使用。

繼續閱讀