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.collation() | 指定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.collation() | 指定查詢條件的排序規則。 |
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() | 供内部使用。 |