On this page
mongo Shell 方法
在本页面
JavaScript in MongoDB
尽管这些方法使用 JavaScript,但是与 MongoDB 的大多数交互都不使用 JavaScript,而是使用交互应用程序语言中的idiomatic driver。
Note
有关特定方法的详细信息,包括语法和示例,请单击特定方法以转到其参考页。
Collection
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.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() | 指定用于确定要为update或updateOne操作更新数组的哪些元素的筛选器。 |
| 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
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 系统上运行,则返回true; false(如果是 Unix 或 Linux 系统)。 |
| _rand() | 返回介于0和1之间的随机数。 |