Configure Settings Using the API使用API配置设置
On this page本页内容
The config
API provides methods to examine and update the mongosh
configuration. config
API提供了检查和更新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
parametersKey | 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:config
API指定的设置:
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 mongosh
You 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将historyLength
setting to2000
:historyLength
设置的值更改为2000
:config.set("historyLength", 2000)
Verify the updated value for验证historyLength
:historyLength
的更新值:config.get("historyLength")
Reset the将historyLength
setting to the default value of1000
:historyLength
设置重置为默认值1000
:config.reset("historyLength")
Verify the updated value for验证historyLength
:historyLength
的更新值:config.get("historyLength")