使用 API 配置设置

APIconfig提供了检查和更新 mongosh配置的方法。使用config API 进行的更新在会话之间持续存在。

笔记:

APIconfig可以在命令行界面中使用mongosh 。它在 embedded Compass shell。

句法

打印当前mongosh配置

config

返回 的当前值<property>

config.get( "<property>" )

将当前设置更改<property><value>

config.set( "<property>", <value> )

将 a<property>重置为默认值:

config.reset( "<property>" )

支持的property参数

Key 类型 默认 描述
displayBatchSize 整数 20 每次游标迭代显示的项目数
enableTelemetry 布尔值 true 允许将匿名跟踪和诊断数据发送到 MongoDB。
editor string null 指定要在控制台中使用的编辑器mongosh 。如果已设置,则覆盖EDITOR环境变量。
forceDisableTelemetry 布尔值 true 仅在全局配置文件中可用。为真时,用户无法手动启用遥测。
historyLength 整数 1000 mongosh要存储在REPL 历史文件中的项目数。
inspectCompact 整数或布尔值 3个 mongosh在单行上输出的内部元素的级别。短数组元素也被组合在一行中。如果设置为falsemongosh则在其自己的行上输出每个字段。
inspectDepth 整数或无穷大 6个 打印对象的深度。设置inspectDepthInfinity(javascript 对象)将所有嵌套对象打印到它们的完整深度。
redactHistory string remove 控制将哪些信息记录在 shell 历史记录中。必须是以下之一:keep: 保留所有历史记录。remove:删除包含敏感信息的行。remove-redact:编辑敏感信息。
showStackTraces 布尔值 false 控制堆栈跟踪以及错误消息的显示。
snippetAutoload 布尔值 true 如果true,则在启动时自动加载已安装的 片段
snippetIndexSourceURLs string MongoDB 存储库 链接到片段注册表的以分号分隔的 URL 列表 。
snippetRegistryURL string npm 注册表 mongosh安装snippet的 npm 客户端使用的 npm 注册表

行为

从历史记录中删除或编辑敏感信息

mongosh做出“最大努力”尝试匹配通常对应于某些类型的敏感信息的模式。

有匹配的模式:

  • 证书和密钥
  • 电子邮件地址
  • 通用用户目录
  • HTTP(s) 网址
  • IP地址
  • MongoDB 连接字符串

某些操作,例如connect(), 被认为是天生敏感的。如果redactHistory设置为remove或 ,包含这些操作的行将从命令行历史记录remove-redact中删除 。

其他操作,比如find(),有时会有敏感信息,例如电子邮件地址。除非设置为 ,否则shell 历史记录将保留输入的这些行。redactHistory``remove-redact

配置文件的行为

使用 API 指定的设置config

例子:

考虑以下将设置设置为的配置 inspectDepth文件20

mongosh:
 inspectDepth: 20

在您的mongosh会话期间,您运行以下命令以设置 inspectDepth10

config.set( "inspectDepth", 10 )

的值inspectDepth变为,即使重新启动 也10将保持不变。10``mongosh

例子

更新游标返回的项目数

考虑查看包含大量大型文档的集合。您可以更新batchSize以限制游标返回的项目数。

config.set("displayBatchSize", 3)

未来的db.collection.find()操作每次游标迭代只会返回 3 个文档。

打开堆栈跟踪

启用堆栈跟踪以查看更详细的错误报告。

config.set("showStackTraces", true)

输出不同,如下所示:

// showStackTraces set to 'false'
Enterprise> db.orders.find( {}, { $thisWontWork: 1 } )
MongoError: FieldPath field names may not start with '$'.
// showStackTraces set to 'true'
Enterprise> db.orders.find( {}, { $thisWontWork: 1 } )
Uncaught:
MongoError: FieldPath field names may not start with '$'.
    at MessageStream.messageHandler (/usr/bin/mongosh:58878:20)
    at MessageStream.emit (events.js:315:20)
    at MessageStream.EventEmitter.emit (domain.js:548:15)
    at processIncomingData (/usr/bin/mongosh:57954:12)
    at MessageStream._write (/usr/bin/mongosh:57850:5)
    at writeOrBuffer (_stream_writable.js:352:12)
    at MessageStream.Writable.write (_stream_writable.js:303:10)
    at Socket.ondata (_stream_readable.js:719:22)
    at Socket.emit (events.js:315:20)
    at Socket.EventEmitter.emit (domain.js:548:15)

config从外部调用API

您可以使用withconfig从命令行调用 API 。在这种情况下,该 选项意味着将在不连接到 MongoDB 数据库的情况下进行更新。--evalmongosh--nodbmongosh

重要的

--eval 您必须为表达式和属性使用不同的引号config。也就是说,一个是单引号,另一个是双引号。

mongosh --nodb --eval 'config.set("enableTelemetry", true)'

mongosh返回附加信息以及 API 调用的结果。

Current Mongosh Log ID:      609583b730e14918fa0d363f
Using MongoDB:               undefined
Using Mongosh Beta:  0.12.1
For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/
Setting "enableTelemetry" has been changed

编辑敏感信息

redactHistory比较设置为 remove-redact或时调用的历史记录remove

设置redactHistoryremove-redact模式并输入包含电子邮件地址的查询。

config.set( "redactHistory", "remove-redact" )
db.contacts.find( {"email": "customer@clients.com" } )

当您按up arrow重播上一个命令时,电子邮件地址会被编辑。

db.contacts.find( {"email": "<email>" } )  // Redacted

设置redactHistoryremove模式并输入包含电子邮件地址的查询。

config.set( "redactHistory", "remove" )
db.contacts.find( {"email": "customer@clients.com" } )

当您按up arrow重播上一个命令时,电子邮件地址会出现。

db.contacts.find( {"email": "customer@clients.com" } )

shell历史反映了这些变化。(请注意,这会首先存储最近的输入。)

db.contacts.find( {"email": "customer@clients.com" } )
config.set( "redactHistory", "remove" )
db.contacts.find( {"email": "<email>" } )
config.set( "redactHistory", "remove-redact" )

将配置设置重置为默认值

如果您修改了配置设置并希望将其重置为默认值,请使用config.reset( "<property>" ).

  1. 将设置值更改historyLength2000

    config.set("historyLength", 2000)
    
  2. 验证 的更新值historyLength

    config.get("historyLength")
    
  3. 将设置重置historyLength为默认值1000

    config.reset("historyLength")
    
  4. 验证 的更新值historyLength

    config.get("historyLength")
    

翻译:韩鹏帅

原文: Configure Settings Using the API

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""