Configure Settings Using the API使用API配置设置
On this page本页内容
The config API provides methods to examine and update the mongosh configuration. configAPI提供了检查和更新mongosh配置的方法。Updates made using the 使用配置API进行的更新会在会话之间持续。config API persist between sessions.
The config API can be used within the mongosh command line interface. It has no effect in the embedded Compass shell.config API可以在mongosh命令行界面中使用。它在嵌入的Compass外壳中没有效果。
Syntax语法
Print the current 打印当前mongosh configuration:mongosh配置:
config
Return the current value for 返回<property>:<property>的当前值:
config.get( "<property>" )
Change the current setting of 将<property> to <value>:<property>的当前设置更改为<value>:
config.set( "<property>", <value> )
Reset a 将<property> to the default value:<property>重置为默认值:
config.reset( "<property>" )
Supported property parameters支持的property参数
property parameters| Key | Type | Default | Description |
|---|---|---|---|
displayBatchSize | integer | 20 | |
enableTelemetry | boolean | true | |
editor | string | null | mongosh console. mongosh控制台中使用的编辑器。EDITOR environment variable if set.EDITOR环境变量(如果已设置)。 |
forceDisableTelemetry | boolean | false | true,则用户无法手动启用遥测。 |
historyLength | integer | 1000 | mongosh REPL's history file.mongosh REPL的历史文件中的项目数。 |
inspectCompact | integer or boolean | 3 | mongosh outputs on a single line. Short array elements are also grouped together on a single line.mongosh在一行中输出的内部元素的级别。短数组元素也被分组在一条线上。false, mongosh outputs each field on its own line.false,mongosh将在自己的行上输出每个字段。 |
inspectDepth | integer or Infinity | 6 | inspectDepth to Infinity (the javascript object) prints all nested objects to their full depth.inspectDepth设置为Infinity(javascript对象)会将所有嵌套对象打印到其全部深度。 |
redactHistory | string | remove |
|
showStackTraces | boolean | false | |
snippetAutoload | boolean | true | true, automatically load installed snippets at startup.true,则在启动时自动加载已安装的代码段。 |
snippetIndexSourceURLs | string | MongoDB Repository | |
snippetRegistryURL | string | npm Registry | mongosh npm client that installs snippet.mongosh npm客户端使用的npm注册表。 |
Behavior行为
Remove or Redact Sensitive Information From History从历史记录中删除或重新处理敏感信息
mongosh makes "best-effort" attempts to match patterns that normally correspond to certain kinds of sensitive information.尽“最大努力”尝试匹配通常与某些类型的敏感信息相对应的模式。
There are patterns that match:有匹配的模式:
Certificates and keys证书和密钥Email addresses电子邮件地址Generic user directories通用用户目录HTTP(s) URLsHTTP URLIP addressesIP地址MongoDB connection stringsMongoDB连接字符串
Certain operations, such as 某些操作,如connect(), are considered inherently sensitive. connect(),被认为是固有的敏感操作。If 如果redactHistory is set to remove or remove-redact, lines with these operations will be removed from the command line history.redactHistory设置为remove或remove-redact,则具有这些操作的行将从命令行历史记录中删除。
Other operations, like 其他操作,如find(), sometimes have sensitive information like email addresses. find(),有时会包含电子邮件地址等敏感信息。The shell history will retain these lines as entered unless 外壳程序历史记录将保留输入的这些行,除非redactHistory is set to remove-redact.redactHistory设置为remove-redact。
Behavior with Configuration File配置文件的行为
Settings specified with the config API:configAPI指定的设置:
Override settings specified in the configuration file.覆盖配置文件中指定的设置。Persist across restarts.在重新启动时坚持。
Consider the following configuration file that sets the 考虑以下配置文件,该文件将inspectDepth setting to 20:inspectDepth设置设置为20:
mongosh:
inspectDepth: 20
During your 在mongosh session you run the following command to set inspectDepth to 10:mongosh会话期间,您可以运行以下命令将inspectDepth设置为10:
config.set( "inspectDepth", 10 )
The value of inspectDepth becomes 10, and will remain 10 even when mongosh is restarted.inspectDepth的值变为10,即使在mongosh重新启动时也将保持为10。
Examples示例
Update Number of Items Returned by a Cursor更新游标返回的项目数
Consider viewing a collection with a number of large documents. You can update the 考虑查看包含大量大型文档的集合。您可以更新batchSize to limit the number of items returned by a cursor.batchSize以限制游标返回的项目数。
config.set("displayBatchSize", 3)
Future 未来的db.collection.find() operations will only return 3 documents per cursor iteration.db.collection.find()操作每次游标迭代只返回3个文档。
Turn On Stack Traces打开堆栈跟踪
Enable stack traces to see more detailed error reporting.启用堆栈跟踪以查看更详细的错误报告。
config.set("showStackTraces", true)
The output differs like this:输出如下所示:
// 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)
Call config API from outside mongosh从mongosh外部调用config API
config API from outside mongoshYou can call the 您可以从命令行使用config API from the command line using --eval with mongosh. --eval和mongosh调用配置API。In this case the 在这种情况下,--nodb option means mongosh will update without connecting to a MongoDB database.--nodb选项意味着mongosh将在不连接到MongoDB数据库的情况下进行更新。
mongosh --nodb --eval 'config.set("enableTelemetry", true)'
mongosh returns additional information along with the result of the API call.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
Redact Sensitive InformationRedact敏感信息
Compare the recalled history when 当redactHistory is set to remove-redact or remove.redactHistory设置为remove-redact或remove时,比较调用的历史记录。
Set 设置redactHistory to remove-redact mode and enter a query containing an email address.redactHistory为remove-redact模式并输入包含电子邮件地址的查询。
config.set( "redactHistory", "remove-redact" )
db.contacts.find( {"email": "customer@clients.com" } )
When you press the 当您按下up arrow to replay the last command the email address is redacted.up arrow重播最后一个命令时,电子邮件地址将被编辑。
db.contacts.find( {"email": "<email>" } ) // Redacted
Set 将redactHistory to remove mode and enter a query containing an email address.redactHistory设置为remove模式并输入包含电子邮件地址的查询。
config.set( "redactHistory", "remove" )
db.contacts.find( {"email": "customer@clients.com" } )
When you press the 当您按下up arrow to replay the last command the email address is present.up arrow重播最后一个命令时,会显示电子邮件地址。
db.contacts.find( {"email": "customer@clients.com" } )
The shell history reflects the changes. shell历史记录反映了这些变化。(Note that this stores the most recent input first.)(请注意,这会首先存储最近的输入。)
db.contacts.find( {"email": "customer@clients.com" } )
config.set( "redactHistory", "remove" )
db.contacts.find( {"email": "<email>" } )
config.set( "redactHistory", "remove-redact" )
Reset a Configuration Setting to the Default Value将配置设置重置为默认值
If you modified a configuration setting and want to reset it to the default value, use 如果修改了配置设置并希望将其重置为默认值,请使用config.reset( "<property>" ).config.reset( "<property>" )。
Change the value of the将historyLengthsetting to2000:historyLength设置的值更改为2000:config.set("historyLength", 2000)
Verify the updated value for验证historyLength:historyLength的更新值:config.get("historyLength")
Reset the将historyLengthsetting to the default value of1000:historyLength设置重置为默认值1000:config.reset("historyLength")
Verify the updated value for验证historyLength:historyLength的更新值:config.get("historyLength")