方法
以下文档列出了MongoDB Shell中可用的方法。单击一种方法可在 MongoDB 手册,包括语法和示例
重要的:
重置 shell 与服务器的连接的方法会触发所有打开的服务器的终止会话. 当会话结束时,所有正在进行的操作也将终止,并且如果启用了身份验证,则客户端必须重新进行身份验证。
以下方法重置 shell 的连接:
db.auth
Mongo.setReadPref
Mongo.setReadConcern
Administration Methods
方法 | 描述 |
---|---|
db.adminCommand() |
对数据库运行命令admin 。 |
db.currentOp() |
报告当前正在进行的操作。 |
db.killOp() |
终止指定的操作。 |
db.shutdownServer() |
关断电流mongod 或者mongos 清洁安全地处理。 |
db.fsyncLock() |
刷新写入磁盘并锁定数据库以防止写入操作并协助备份操作。 |
db.fsyncUnlock() |
允许在锁定的数据库上继续写入 db.fsyncLock() . |
批量操作方法
方法 | 描述 |
---|---|
db.collection.initializeOrderedBulkOp() |
初始化并返回一个新的Bulk() 集合的操作生成器。该构建器构建了一个有序的 MongoDB 批量执行的写操作列表。 |
db.collection.initializeUnorderedBulkOp() |
初始化并返回一个新的Bulk() 集合的操作生成器。该构建器构建了一个无序列表,其中包含 MongoDB 批量执行的写入操作。 |
Bulk() |
创建一个批量操作构建器,用于构建要为单个集合批量执行的写入操作列表。要实例化构建器,请使用db.collection.initializeOrderedBulkOp() 或者db.collection.initializeUnorderedBulkOp() 方法。 |
Bulk.execute() |
执行由Bulk() 运营建设者。 |
Bulk.find() |
指定更新或删除操作的查询条件。 |
Bulk.find.hint() |
设置指定索引以支持批量操作的提示选项。 |
Bulk.find.remove() |
将删除操作添加到批量操作列表。 |
Bulk.find.removeOne() |
将单个文档删除操作添加到批量操作列表中。 |
Bulk.find.replaceOne() |
将单个文档替换操作添加到批量操作列表中。 |
Bulk.find.updateOne() |
将单个文档更新操作添加到批量操作列表中。 |
Bulk.find.update() |
将多更新操作添加到批量操作列表。该方法更新现有文档中的特定字段。 |
Bulk.find.upsert() |
设置更新插入true 用于更新或替换操作的选项。 |
Bulk.getOperations() |
返回通过执行的写操作数组 Bulk.execute() . |
Bulk.insert() |
将插入操作添加到批量操作列表。 |
Bulk.toJSON() |
返回一个 JSON 文档,其中包含操作数和批次数Bulk() 目的。 |
Bulk.toString() |
以字符串形式返回一个 JSON 文档,其中包含操作数和批次数Bulk() 目的。 |
收集方法
连接方式
方法 | 描述 |
---|---|
Mongo() |
mongo JavaScript 构造函数,用于从shell 或 JavaScript 文件实例化数据库连接。这Mongo() 方法具有以下参数:范围类型描述host 细绳选修的目标数据库连接的连接字符串。如果省略,Mongo() 在默认端口上实例化到本地主机接口的连接27017 。autoEncryptionOpts 文档选修的**4.2版中的新功能。启用的配置参数 客户端字段级加密。autoEncryptionOpts 覆盖数据库连接的现有客户端字段级加密配置。如果省略,Mongo() 继承当前数据库连接的客户端字段级加密配置。有关用法和语法的文档,请参阅 自动加密选项。 |
Mongo.getDB() |
返回一个数据库对象。 |
Mongo.setReadPref() |
设置阅读偏好用于 MongoDB 连接。 |
Mongo.watch() |
打开一个更改流光标副本集或分片集群报告其数据库中的所有非系统集合,除了 、admin 和local 数据库config 。 |
游标方法
方法 | 描述 |
---|---|
cursor.addOption() |
添加修改查询行为的特殊线路协议标志。 |
cursor.allowPartialResults() |
允许db.collection.find() 如果一个或多个查询的分片不可用,则针对分片集合的操作返回部分结果,而不是错误。 |
cursor.batchSize() |
控制 MongoDB 将在单个网络消息中返回给客户端的文档数。以下示例查询以 100 个为一组返回结果:db.myCollection.find().batchSize(100) |
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.isClosed() |
true 如果游标关闭则返回。 |
cursor.isExhausted() |
true 如果游标已关闭并且批处理中没有剩余对象,则返回。 |
cursor.itcount() |
通过获取和迭代结果集来计算游标客户端中的文档总数。 |
cursor.limit() |
限制游标结果集的大小。 |
cursor.map() |
将函数应用于游标中的每个文档,并将返回值收集到数组中。 |
cursor.max() |
指定游标的独占索引上限。用于与cursor.hint() |
cursor.maxTimeMS() |
指定处理游标操作的累积时间限制(以毫秒为单位)。 |
cursor.min() |
指定游标的包含索引下限。用于与cursor.hint() |
cursor.next() |
返回游标中的下一个文档。 |
cursor.noCursorTimeout() |
指示服务器避免在一段时间不活动后自动关闭游标。 |
cursor.objsLeftInBatch() |
返回当前游标批次中剩余的文档数。 |
cursor.readConcern() |
指定一个阅读关注为一个 db.collection.find() 手术。 |
cursor.readPref() |
指定一个阅读偏好到游标来控制客户端如何将查询定向到副本集。 |
cursor.returnKey() |
修改游标以返回索引键而不是文档。 |
cursor.showRecordId() |
向游标返回的每个文档添加一个内部存储引擎 ID 字段。 |
cursor.size() |
应用后返回游标中文档的计数 skip() 和limit() 方法。 |
cursor.skip() |
返回一个游标,该游标仅在传递或跳过多个文档后才开始返回结果。 |
cursor.sort() |
返回根据排序规范排序的结果。 |
cursor.tailable() |
将游标标记为可尾。仅对位于上限集合上的游标有效。 |
cursor.toArray() |
返回一个数组,其中包含游标返回的所有文档。 |
数据库方法
方法 | 描述 |
---|---|
db.aggregate() |
运行不需要底层集合的管理/诊断管道。 |
db.createCollection() |
创建新的集合或视图。 |
db.createView() |
创建一个视图作为将指定的聚合管道应用于源集合或视图的结果。 |
db.commandHelp() |
显示指定数据库命令的帮助文本。 |
db.dropDatabase() |
删除当前数据库。 |
db.getCollection() |
返回一个集合或视图对象。用于访问名称在mongo 壳。 |
db.getCollectionInfos() |
返回当前数据库中所有集合和视图的集合信息。 |
db.getCollectionNames() |
列出当前数据库中的所有集合和视图。 |
db.getMongo() |
返回当前数据库连接。 |
db.getLogComponents() |
返回当前的日志详细程度设置。 |
db.getName() |
返回当前数据库的名称。 |
db.getProfilingStatus() |
返回当前配置文件级别,slowOpThresholdMs 设置,和慢操作采样率 环境。 |
db.getSiblingDB() |
提供对指定数据库的访问。 |
db.listCommands() |
提供所有数据库命令的列表。 |
db.logout() |
结束经过身份验证的会话。 |
db.printShardingStatus() |
打印分片配置的格式化报告以及有关分片集群中现有块的信息。 |
db.runCommand() |
运行一个数据库命令。 |
db.setLogLevel() |
为记录消息。 |
db.setProfilingLevel() |
配置数据库分析器级别, 慢速, 和采样率。 |
db.watch() |
打开一个更改流光标用于报告其所有非系统集合的数据库。 |
免费监测方法
从 MongoDB 4.0 开始,MongoDB(社区版)提供 免费云监控用于独立和副本集部署。
笔记:
免费云监控仅适用于 MongoDB 社区版。
方法 | 描述 |
---|---|
db.disableFreeMonitoring() |
为您的部署禁用免费云监控。 |
db.enableFreeMonitoring() |
为您的部署启用免费的云监控。 |
db.getFreeMonitoringStatus() |
返回部署的免费云监控状态。 |
客户端字段级加密方法
笔记:
限制
mongosh
自动加密仅在连接到 Atlas 集群或 MongoDB Enterprise Server时可用。有关详细信息,请参阅自动客户端字段级加密. 本节列出的方法用于手动加密,非企业服务器支持。- 的 Homebrew 安装不提供自动加密
mongosh
。- 字段级加密仅在
mongosh
二进制中可用,在嵌入式指南针外壳。
方法 | 描述 |
---|---|
ClientEncryption.decrypt() |
如果当前数据库连接配置encryptedValue 为可以访问密钥管理服务 (KMS) 和用于加密的密钥保管库,则解密指定的encryptedValue . |
ClientEncryption.encrypt() |
encryptionKeyId 使用指定的和加密指定的值encryptionAlgorithm 。 |
getClientEncryption() |
返回ClientEncryption 当前数据库集合的对象。 |
getKeyVault() |
返回KeyVault 当前数据库连接的对象。 |
KeyVault.addKeyAlternateName() |
添加keyAltName 到keyAltNames 具有指定 UUID 的数据加密密钥的数组。 |
KeyVault.createKey() |
将数据加密密钥添加到与数据库连接关联的密钥保管库。 |
KeyVault.deleteKey() |
从与数据库连接关联的密钥保管库中删除具有指定 UUID 的数据加密密钥。 |
KeyVault.getKey() |
获取具有指定 UUID 的数据加密密钥。数据加密密钥必须存在于与数据库连接关联的密钥保管库中。 |
KeyVault.getKeyByAltName() |
获取具有指定keyAltName . |
KeyVault.getKeys() |
返回存储在与数据库连接关联的密钥保管库中的所有数据加密密钥。 |
KeyVault.removeKeyAlternateName() |
keyAltName 从具有指定 UUID 的数据加密密钥中删除指定的。数据加密密钥必须存在于与数据库连接关联的密钥保管库中。 |
本机方法
方法 | 描述 |
---|---|
cd() |
将当前工作目录更改为指定路径。 |
isInteractive() |
返回一个布尔值,指示 mongosh 是以交互模式还是脚本模式运行。 |
load() |
在 shell 中加载并运行 JavaScript 文件。在 中mongosh ,使用该load() 方法加载的脚本支持__filename 和__dirname Node.js 变量。这些变量分别返回加载脚本的文件名和目录。返回值始终是绝对路径。在旧版 shell 中,您无法使用该load() 方法访问脚本的文件名或目录。 |
print() |
打印指定的文本或变量。print() 并且printjson() 是 . 的别名console.log() 。> print("hello world")hello world> x = "example text"> print(x)example text |
pwd() |
返回活动 shell 会话的当前工作目录。 |
quit() |
退出当前 shell 会话。 |
sleep() |
暂停mongo 给定时间段内的 shell。 |
version() |
返回实例的当前版本mongosh 。 |
查询计划缓存方法
方法 | 描述 |
---|---|
db.collection.getPlanCache() |
返回一个接口以访问查询计划缓存对象和PlanCache 集合的关联方法。 |
PlanCache.clear() |
删除集合的所有缓存查询计划。 |
PlanCache.clearPlansByQuery() |
清除指定缓存的查询计划 查询形状。 |
PlanCache.help() |
列出可用于查看和修改集合的查询计划缓存的方法。 |
PlanCache.list() |
返回一个数组 计划缓存条目 为收藏。 |
复制方法
方法 | 描述 |
---|---|
rs.add() |
将成员添加到副本集。您必须连接到副本集的主节点才能运行此方法。 |
rs.addArb() |
将仲裁器添加到现有副本集。 |
rs.config() |
返回包含当前副本集配置的文档。 |
rs.freeze() |
使连接到的副本集成员mongosh 在指定的持续时间内没有资格成为主要成员。您必须以秒为单位指定持续时间。 |
db.getReplicationInfo() |
从 oplog 数据返回副本集的状态。 |
rs.initiate() |
初始化一个新的副本集。 |
db.printReplicationInfo() |
mongosh 返回连接到的副本集成员的操作日志。 |
rs.printReplicationInfo() |
mongosh 返回连接到的副本集成员的操作日志。 |
db.printSecondaryReplicationInfo |
返回副本集的次要成员的状态。这与方法相同rs.printSecondaryReplicationInfo() 。此方法的输出类似于 db.printSlaveReplicationInfo() 方法。这db.printSlaveReplicationInfo() 方法在mongosh . 改用 db.printSecondaryReplicationInfo() 。以下是 rs.printSecondaryReplicationInfo() 在具有两个次要成员的副本集上发出的方法的示例输出:source: rs2.example.net:27017{ syncedTo: 'Tue Oct 13 2020 09:37:28 GMT-0700 (Pacific Daylight Time)', replLag: '0 secs (0 hrs) behind the primary '}---source: rs3.example.net:27017{ syncedTo: 'Tue Oct 13 2020 09:37:28 GMT-0700 (Pacific Daylight Time)', replLag: '0 secs (0 hrs) behind the primary '} |
rs.printSecondaryReplicationInfo |
返回副本集的次要成员的状态。这与方法相同db.printSecondaryReplicationInfo() 。此方法的输出类似于 rs.printSlaveReplicationInfo() 遗产中的方法 mongo 壳。这rs.printSlaveReplicationInfo() 方法在mongosh . 改用 rs.printSecondaryReplicationInfo() 。以下是 rs.printSecondaryReplicationInfo() 在具有两个次要成员的副本集上发出的方法的示例输出:source: rs2.example.net:27017{ syncedTo: 'Tue Oct 13 2020 09:42:18 GMT-0700 (Pacific Daylight Time)', replLag: '0 secs (0 hrs) behind the primary '}---source: rs3.example.net:27017{ syncedTo: 'Tue Oct 13 2020 09:42:18 GMT-0700 (Pacific Daylight Time)', replLag: '0 secs (0 hrs) behind the primary '} |
rs.重新配置() | 修改现有副本集的配置。 |
rs.remove() |
从副本集中删除主机名指定的成员。 |
rs.status() |
mongosh 返回连接到的副本集成员的状态。 |
rs.stepDown() |
使副本集的主要成为次要。您必须连接到主服务器才能运行此方法。 |
rs.syncFrom() |
mongosh 将同步目标重置为由连接到的副本集成员的主机名指定的副本集成员。 |
角色管理方法
方法 | 描述 |
---|---|
db.createRole() |
创建角色并指定其权限。 |
db.dropRole() |
删除用户定义的角色。 |
db.dropAllRoles() |
删除与数据库关联的所有用户定义角色。 |
db.getRole() |
返回指定角色的信息。 |
db.getRoles() |
返回数据库中所有用户定义角色的信息。 |
db.grantPrivilegesToRole() |
将权限分配给用户定义的角色。 |
db.revokePrivilegesFromRole() |
从用户定义的角色中删除指定的权限。 |
db.grantRolesToRole() |
指定用户定义的角色从中继承特权的角色。 |
db.revokeRolesFromRole() |
从角色中删除继承的角色。 |
db.updateRole() |
更新用户定义的角色。 |
会话对象方法
方法 | 描述 |
---|---|
Mongo.startSession() |
启动连接会话。 |
会话.advanceOperationTime() | 更新操作时间。 |
会话结束会话() | 结束会话。 |
会话.getClusterTime() | 返回会话看到的最近的集群时间。 |
会话.getDatabase() | 从 shell 中的会话访问指定的数据库。 |
会话.getOperationTime() | 返回会话的最后确认操作的时间戳。 |
会话.getOptions() | 返回会话的选项。 |
会话.hasEnded() | 返回一个布尔值,指定会话是否已结束。 |
SessionOptions() |
shell 中会话的选项。访问 SessionOptions() 对象,使用Session.getOptions() . |
服务器状态方法
方法 | 描述 |
---|---|
db.hello() |
返回描述角色的文档 mongod 实例。如果mongod 是副本集的成员,那么isWritablePrimary 和 secondary 字段报告实例是否是 基本的或者如果它是次要的副本集的成员。 |
db.hostInfo() |
返回一个文档,其中包含有关运行 MongoDB 实例的系统的信息。 |
db.collection.latencyStats() |
返回指定集合的延迟统计信息。 |
db.printCollectionStats() |
返回每个集合的统计信息。 |
db.serverBuildInfo() |
返回显示编译参数的文档mongod 实例。 |
db.serverCmdLineOpts() |
返回一个文档,其中包含有关用于启动 MongoDB 实例的运行时选项的信息。 |
db.serverStatus() |
返回提供数据库进程概述的文档。 |
db.stats() |
返回报告当前数据库状态的文档。 |
db.version() |
返回的版本mongod 实例。 |
分片方法
遥测方法
这些方法配置是否mongosh
跟踪匿名遥测数据。默认情况下启用遥测。
有关mongosh
使用遥测跟踪哪些数据的更多信息,请参阅配置遥测选项。
方法 | 描述 |
---|---|
disableTelemetry() |
为 禁用遥测mongosh 。 |
enableTelemetry() |
为 启用遥测mongosh 。 |
交易方式
方法 | 描述 |
---|---|
Session.abortTransaction() |
终止一个多文件交易 并回滚事务中操作所做的任何数据更改。 |
Session.commitTransaction() |
将操作所做的更改保存在多文件交易并结束交易。 |
Session.startTransaction() |
启动一个多文件交易 与会话相关联。 |
用户管理方法
重要的:
这
passwordPrompt()
中目前不支持该方法mongosh
。因此,在使用以下方法时,您必须将密码指定为参数:
方法 | 描述 |
---|---|
db.auth() |
对数据库的用户进行身份验证。 |
db.changeUserPassword() |
更改现有用户的密码。 |
db.createUser() |
创建新用户。 |
db.dropAllUsers() |
删除与数据库关联的所有用户。 |
db.dropUser() |
删除单个用户。 |
db.getUser() |
返回有关指定用户的信息。 |
db.getUsers() |
返回有关与数据库关联的所有用户的信息。 |
db.updateUser() |
更新指定用户的数据。 |
db.grantRolesToUser() |
向用户授予角色及其权限。 |
db.revokeRolesFromUser() |
删除用户的角色。 |
翻译:韩鹏帅
原文:Methods