mongo Shell 方法

在本页面

JavaScript in MongoDB

尽管这些方法使用 JavaScript,但是与 MongoDB 的大多数交互都不使用 JavaScript,而是使用交互应用程序语言中的idiomatic driver

Note

有关特定方法的详细信息,包括语法和示例,请单击特定方法以转到其参考页。

Collection

Name Description
db.collection.aggregate() 提供对aggregation pipeline的访问权限。
db.collection.bulkWrite() 提供批量写入操作功能。
db.collection.copyTo() 不推荐使用。包装eval以在单个 MongoDB 实例中的集合之间复制数据。
db.collection.count() 自动换行count返回集合或视图中文档数量的计数。
db.collection.createIndex() 在集合上构建索引。
db.collection.createIndexes() 在集合上构建一个或多个索引。
db.collection.dataSize() 返回集合的大小。在collStats的输出中包装size字段。
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()报告chunk分布的数据。
db.collection.getShardVersion() 分片群集的内部诊断方法。
db.collection.group() 不推荐使用。提供简单的数据聚合功能。通过键将集合中的文档分组,然后处理结果。使用aggregate()进行更复杂的数据聚合。
db.collection.insert() 在集合中创建一个新文档。
db.collection.insertOne() 在集合中插入新文档。
db.collection.insertMany() 在集合中插入几个新文档。
db.collection.isCapped() 报告集合是否为capped collection
db.collection.latencyStats() 返回集合的延迟统计信息。
db.collection.mapReduce() 执行 map-reduce 样式数据聚合。
db.collection.reIndex() 重建集合上所有现有的索引。
db.collection.remove() 从集合中删除文档。
db.collection.renameCollection() 更改集合的名称。
db.collection.replaceOne() 替换集合中的单个文档。
db.collection.save() 提供围绕insert()update()的包装器以插入新文档。
db.collection.stats() 报告收集状态。提供围绕collStats的包装。
db.collection.storageSize() 报告集合使用的总大小(以字节为单位)。在collStats输出的storageSize字段周围提供包装。
db.collection.totalIndexSize() 报告集合中索引使用的总大小。在collStats输出的totalIndexSize字段周围提供包装。
db.collection.totalSize() 报告集合的总大小,包括集合中所有文档和所有索引的大小。
db.collection.update() 修改集合中的文档。
db.collection.updateOne() 修改集合中的单个文档。
db.collection.updateMany() 修改集合中的多个文档。
db.collection.watch() 在集合上构建变更流。
db.collection.validate() 对集合执行诊断操作。

Cursor

Name Description
cursor.addOption() 添加特殊的有线协议标志,以修改查询的行为。”
cursor.allowPartialResults() 如果一个或多个查询的分片不可用,则允许对分片集合进行db.collection.find()操作返回部分结果,而不是错误。
cursor.batchSize() 控制 MongoDB 将在单个网络消息中返回给 Client 端的文档数。
cursor.close() 关闭游标并释放关联的服务器资源。
cursor.isClosed() 如果关闭光标,则返回true
cursor.collation() 指定db.collection.find()返回的游标的排序规则。
cursor.comment() 在查询中附加 Comments,以允许在日志和 system.profile 集合中进行 traceback。
cursor.count() 修改光标以返回结果集中的文档数,而不是文档本身。
cursor.explain() 报告有关游标的查询执行计划。
cursor.forEach() 为光标中的每个文档应用 JavaScript 函数。
cursor.hasNext() 如果游标包含文档并且可以迭代,则返回 true。
cursor.hint() 强制 MongoDB 对查询使用特定的索引。
cursor.isExhausted() 如果光标已关闭并且批处理中没有剩余对象,则返回true
cursor.itcount() 通过获取和迭代结果集来计算游标 Client 端中的文档总数。
cursor.limit() 限制游标结果集的大小。
cursor.map() 将函数应用于游标中的每个文档,并在数组中收集返回值。
cursor.max() 指定游标的排他上限索引。用于cursor.hint()
cursor.maxScan() 指定要扫描的最大项目数;用于收集扫描的文档,用于索引扫描的键。
cursor.maxTimeMS() 指定用于游标的处理操作的累积时间限制(以毫秒为单位)。
cursor.min() 指定一个游标的下限值。用于cursor.hint()
cursor.next() 返回游标中的下一个文档。
cursor.noCursorTimeout() 指示服务器避免一段时间不活动后自动关闭游标。
cursor.objsLeftInBatch() 返回当前游标批处理中剩余的文档数。
cursor.pretty() 配置光标以易于阅读的格式显示结果。
cursor.readConcern() find()操作指定read concern
cursor.readPref() 为光标指定read preference,以控制 Client 端如何将查询定向到replica set
cursor.returnKey() 修改光标以返回索引键而不是文档。
cursor.showRecordId() 将内部存储引擎 ID 字段添加到光标返回的每个文档中。
cursor.size() 应用skip()limit()方法后,返回光标中文档的计数。
cursor.skip() 返回一个游标,该游标仅在通过或跳过多个文档后才开始返回结果。
cursor.sort() 返回根据排序规范排序的结果。
cursor.tailable() 将光标标记为可尾。仅对有上限的集合上的光标有效。
cursor.toArray() 返回一个数组,其中包含光标返回的所有文档。

Database

Name Description
db.adminCommand() 针对admin数据库运行命令。
db.aggregate() 运行不需要基础集合的 Management/诊断管道。
db.cloneCollection() 直接在 MongoDB 实例之间复制数据。包装cloneCollection
db.cloneDatabase() 将数据库从远程主机复制到当前主机。包装clone
db.commandHelp() 返回有关database command的帮助信息。
db.copyDatabase() 将数据库复制到当前主机上的另一个数据库。包装copydb
db.createCollection() 创建一个新的集合或视图。通常用于创建上限集合。
db.createView() 创建一个视图。
db.currentOp() 报告当前正在进行的操作。
db.dropDatabase() 删除当前数据库。
db.eval() 不推荐使用。将 JavaScript 函数传递给mongod实例,以进行服务器端 JavaScript 评估。
db.fsyncLock() 将写刷新到磁盘并锁定数据库,以防止写操作并协助备份操作。包装fsync
db.fsyncUnlock() 允许写操作 continue 在用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对象方法的描述。
db.hostInfo() 返回包含有关运行 MongoDB 的系统的信息的文档。包装hostInfo
db.isMaster() 返回报告副本集状态的文档。
db.killOp() 终止指定的操作。
db.listCommands() 显示常见数据库命令的列表。
db.logout() 结束已认证的会话。
db.printCollectionStats() 打印每个集合的统计信息。包装db.collection.stats()
db.printReplicationInfo() 从主数据库的角度打印副本集状态的报告。
db.printShardingStatus() 打印分片配置和块范围的报告。
db.printSlaveReplicationInfo() 从第二副本的角度打印副本集状态的报告。
db.repairDatabase() 在当前数据库上运行修复例程。
db.resetError() 已弃用。重置db.getPrevError()getPrevError返回的错误消息。
db.runCommand() 运行database command
db.serverBuildInfo() 返回显示mongod实例的编译参数的文档。包装buildinfo
db.serverCmdLineOpts() 返回一个文档,其中包含有关用于启动 MongoDB 实例的运行时的信息。包装getCmdLineOpts
db.serverStatus() 返回一个提供数据库进程状态概述的文档。
db.setLogLevel() 设置单个日志消息的详细程度。
db.setProfilingLevel() 修改当前数据库分析级别。
db.shutdownServer() 干净安全地关闭当前的mongodmongos进程。
db.stats() 返回报告当前数据库状态的文档。
db.version() 返回mongod实例的版本。

查询计划缓存

Name Description
db.collection.getPlanCache() 返回一个接口,以访问查询计划缓存对象和集合的关联 PlanCache 方法。
PlanCache.clear() 清除集合的所有缓存查询计划。可通过特定集合(即db.collection.getPlanCache().clear())的计划缓存对象进行访问。
PlanCache.clearPlansByQuery() 清除指定查询形状的缓存查询计划。可通过特定集合(即db.collection.getPlanCache().clearPlansByQuery())的计划缓存对象进行访问
PlanCache.getPlansByQuery() 显示指定查询形状的缓存查询计划。可通过特定集合(即db.collection.getPlanCache().getPlansByQuery())的计划缓存对象进行访问。
PlanCache.help() 显示可用于集合的查询计划缓存的方法。可通过特定集合(即db.collection.getPlanCache().help())的计划缓存对象进行访问。
PlanCache.listQueryShapes() 显示存在查询计划的查询形状。可通过特定集合(即db.collection.getPlanCache().listQueryShapes())的计划缓存对象进行访问。

批量写入操作

Name Description
db.collection.initializeOrderedBulkOp() 初始化Bulk()操作构建器以获取操作的有序列表。
db.collection.initializeUnorderedBulkOp() 初始化Bulk()操作构建器以获取无序的操作列表。
Bulk() 批量操作生成器。
Bulk.execute() 批量执行操作列表。
Bulk.find() 指定更新或删除操作的查询条件。
Bulk.find.arrayFilters() 指定用于确定要为updateupdateOne操作更新数组的哪些元素的筛选器。
Bulk.find.collation() 指定查询条件的collation
Bulk.find.remove() 将多文档删除操作添加到操作列表中。
Bulk.find.removeOne() 将单个文档删除操作添加到操作列表中。
Bulk.find.replaceOne() 将单个文档替换操作添加到操作列表中。
Bulk.find.updateOne() 将单个文档更新操作添加到操作列表中。
Bulk.find.update() multi更新操作添加到操作列表中。
Bulk.find.upsert() 指定upsert: true进行更新操作。
Bulk.getOperations() 返回在Bulk()操作对象中执行的写入操作的数组。
Bulk.insert() 将插入操作添加到操作列表中。
Bulk.tojson() 返回一个 JSON 文档,其中包含Bulk()操作对象中的操作和批处理数量。
Bulk.toString() 以字符串形式返回Bulk.tojson()结果。

User Management

Name Description
db.auth() 向数据库验证用户。
db.changeUserPassword() 更改现有用户的密码。
db.createUser() 创建一个新用户。
db.dropUser() 删除一个用户。
db.dropAllUsers() 删除与数据库关联的所有用户。
db.getUser() 返回有关指定用户的信息。
db.getUsers() 返回有关与数据库关联的所有用户的信息。
db.grantRolesToUser() 向用户授予角色及其特权。
db.removeUser() 不推荐使用。从数据库中删除用户。
db.revokeRolesFromUser() 从用户删除角色。
db.updateUser() 更新用户数据。

Role Management

Name Description
db.createRole() 创建一个角色并指定其特权。
db.dropRole() 删除用户定义的角色。
db.dropAllRoles() 删除与数据库关联的所有用户定义角色。
db.getRole() 返回指定角色的信息。
db.getRoles() 返回数据库中所有用户定义角色的信息。
db.grantPrivilegesToRole() 将特权分配给用户定义的角色。
db.revokePrivilegesFromRole() 从用户定义的角色中删除指定的特权。
db.grantRolesToRole() 指定角色,用户定义的角色将从这些角色继承特权。
db.revokeRolesFromRole() 从角色中删除继承的角色。
db.updateRole() 更新用户定义的角色。

Replication

Name Description
rs.add() 将成员添加到副本集。
rs.addArb() arbiter添加到副本集。
rs.conf() 返回副本集配置文档。
rs.freeze() 防止当前成员在一段时间内寻求选举为主。
rs.help() 返回replica set函数的基本帮助文本。
rs.initiate() 初始化新的副本集。
rs.printReplicationInfo() 从主数据库的角度打印副本集状态的报告。
rs.printSlaveReplicationInfo() 从第二副本的角度打印副本集状态的报告。
rs.reconfig() 通过应用新的副本集配置对象来重新配置副本集。
rs.remove() 从副本集中删除成员。
rs.status() 返回包含有关副本集状态信息的文档。
rs.stepDown() 使当前的primary成为次级,从而强制election
rs.syncFrom() 设置此副本集成员将从其进行同步的成员,从而覆盖默认的同步目标选择逻辑。

Sharding

Name Description
sh.addShard() shard添加到分片群集。
sh.addShardTag() 在 MongoDB 3.4 中,此方法别名为sh.addShardToZone()
sh.addShardToZone() 将分片与区域关联。支持在分片群集中配置zones
sh.addTagRange() 在 MongoDB 3.4 中,此方法别名为sh.updateZoneKeyRange()
sh.disableBalancing() 在分片数据库中的单个集合上禁用平衡。不会影响分片群集中其他集合的平衡。
sh.enableBalancing() 如果先前使用sh.disableBalancing()禁用了分片集合平衡器进程,则将其激活。
sh.disableAutoSplit() 禁用分片群集的自动拆分。
sh.enableAutoSplit() 对分片群集启用自动拆分。
sh.enableSharding() 在特定数据库上启用分片。
sh.getBalancerHost() 自 MongoDB 3.4 起不推荐使用
sh.getBalancerState() 返回一个布尔值以报告当前是否启用了balancer
sh.removeTagRange() 在 MongoDB 3.4 中,此方法别名为sh.removeRangeFromZone()
sh.removeRangeFromZone() 删除一系列分片键和区域之间的关联。支持在分片群集中配置zones
sh.help() 返回sh方法的帮助文本。
sh.isBalancerRunning() 返回一个布尔值以报告平衡器进程当前是否正在迁移块。
sh.moveChunk() chunk迁移到sharded cluster
sh.removeShardTag() 在 MongoDB 3.4 中,此方法别名为sh.removeShardFromZone()
sh.removeShardFromZone() 删除分片和区域之间的关联。用于 Managementzone sharding
sh.setBalancerState() 启用或禁用在shards之间迁移chunksbalancer
sh.shardCollection() 为集合启用分片。
sh.splitAt() 使用特定的shard key值作为分割点,将现有的chunk分为两个块。
sh.splitFind() 将包含与查询匹配的文档的现有chunk分为两个大致相等的块。
sh.startBalancer() 启用balancer,然后 await 平衡开始。
sh.status() 报告sharded cluster的状态,即db.printShardingStatus()
sh.stopBalancer() 禁用balancer,并 await 所有进行中的平衡回合完成。
sh.waitForBalancer() 内部。await 平衡器状态更改。
sh.waitForBalancerOff() 内部。await 直到平衡器停止运行。
sh.waitForPingChange() 内部。await 分片群集中mongos之一的 ping 状态更改。
sh.updateZoneKeyRange() 将一系列分片密钥与区域关联。支持在分片群集中配置zones

Constructors

Name Description
BulkWriteResult() 包装来自Bulk.execute()的结果集。
Date() 创建一个日期对象。默认情况下,创建一个包含当前日期的日期对象。
ObjectId() 返回ObjectId
ObjectId.getTimestamp() 返回ObjectId的时间戳部分。
ObjectId.toString() 显示ObjectId的字符串表示形式。
ObjectId.valueOf() 将 ObjectId 的str属性显示为十六进制字符串。
UUID() 将 32 字节的十六进制字符串转换为 UUID BSON 子类型。
WriteResult() 包装来自 write 方法的结果集。
WriteResult.hasWriteError() 返回一个布尔值,指定结果是否包含WriteResult.writeError
WriteResult.hasWriteConcernError() 返回一个布尔值,指定结果是否包含WriteResult.writeConcernError

Connection

Name Description
connect() 连接到 MongoDB 实例和该实例上的指定数据库。
Mongo() 创建一个新的连接对象。
Mongo.getDB() 返回数据库对象。
Mongo.getReadPrefMode() 返回 MongoDB 连接的当前读取首选项模式。
Mongo.getReadPrefTagSet() 返回为 MongoDB 连接设置的读取首选项标签。
Mongo.isCausalConsistency() 指示是否在连接对象上启用因果一致性。
Mongo.setCausalConsistency() 在连接对象上启用或禁用因果一致性。
Mongo.setReadPref() 为 MongoDB 连接设置read preference
Mongo.startSession() 在连接对象上启动会话。
Session 会话对象。
SessionOptions 会话的选项对象。

Native

Name Description
cat() 返回指定文件的内容。
cd() 将当前工作目录更改为指定的路径。
copyDbpath() 复制本地dbPath。供内部使用。
getHostName() 返回运行mongo shell 的系统的主机名。
getMemInfo() 返回一个文档,该文档报告 Shell 程序使用的内存量。
hostname() 返回运行 Shell 程序的系统的主机名。
listFiles() 返回文档数组,这些文档给出目录中每个对象的名称和大小。
load() 在 Shell 中加载并运行一个 JavaScript 文件。
ls() 返回当前目录中文件的列表。
md5sumFile() 指定文件的md5哈希。
mkdir() 在指定路径下创建目录。
pwd() 返回当前目录。
quit() 退出当前的 shell 会话。
removeFile() 从本地文件系统中删除指定的文件。
resetDbpath() 删除本地dbPath。供内部使用。
sleep() 在给定的时间段内挂起mongo shell。
setVerboseShell() 配置mongo Shell 以报告操作时间。
version() 返回mongo shell 实例的当前版本。
_isWindows() 如果 Shell 程序在 Windows 系统上运行,则返回truefalse(如果是 Unix 或 Linux 系统)。
_rand() 返回介于01之间的随机数。
首页