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实例的当前版本。 |
光盘() | 将当前工作目录更改为指定路径。 |
睡觉() | 将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() | 供内部使用。 |