天天看点

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

继续阅读