自定义 MongoDB CLI 输出
在此页面上
您可以使用 Go
模板或 JSON 路径自定义 MongoDB CLI 输出字段和格式。
Go 模板
您可以使用命令为简单输出指定 Go 模板,也可以通过单独的文件为复杂输出指定 Go 模板。 有关模板的信息,请参阅 包模板 。有关每个响应可用的类型和属性的信息,请参阅:
语法
您可以通过使用--output
或-o
选项的命令来指定模板:
--output|-o go-template="{{<template>}}"
您可以使用--output
或-o
选项使用文件指定模板:
--output|-o go-template-file="<path-to-template-file>"
示例
检索项目数量
以下命令使用该模板检索指定组织中使用默认配置文件的项目计数:
mongocli iam projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template="Count: {{.TotalCount}}"
上述命令会返回以下输出:
Count: 2
检索Atlas集群连接string
以下mongocli-atlas-clusters-describe
命令使用该模板检索名为getStarted
的 Atlas 集群的连接字符串。 它使用默认配置文件访问 Atlas。
mongocli atlas clusters describe getStarted -o go-template="Parse: {{.SrvAddress}}"
上一个命令会返回一个类似于以下内容的string :
Parse: mongodb+srv://getstarted.example.mongodb.net
您可以使用MongoDB Shell mongosh
,通过 srvAddress
和连接string连接到 getStarted
集群。 此示例使用上一个命令返回的连接string 。
mongo "mongodb+srv://getstarted.example.mongodb.net" --username User1 --password ChangeThisPasswordToSomethingSecure
例如,考虑以下名为template.tmpl
的文件:
Projects: {{range .Results}}{{.ID}} {{end}}
以下命令使用template.tmpl
文件检索指定组织中使用默认配置文件的项目的 ID:
mongocli iam projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template-file="template.tmpl"
上述命令会返回以下输出:
Projects: 5e2211c17a3e5a48f5497de3 5f455b39749bea5fb575dccc
json-path
输出类型
json-path
输出类型将命令的结果限制为您指定的字段。
使用
向命令添加--output
选项时,可以指定类型json-path
。 您必须为json-path
提供一个表达式,以根据您的结果进行评估,这意味着您必须了解命令返回的json
字段。
语法
<command> --output|-o json-path='$<expression>'
json-path
表达式是指 MongoDB CLI 命令返回的 JSON元素。 $
字符表示根元素,通常是对象或数组。
有关有效字符及其功能的列表,请参阅 JSONPath 表达式。
示例
返回列表中第一个 API 密钥的描述
在以下示例中,用户使用 mongocli iam 组织 apiKeys list 检索其 API 密钥。json-path
表达式将输出限制为第一个键的desc
字段,而不是返回整个键列表。
mongocli iam organization apikeys list --output json-path='$[0].desc' owner_key
使用--output json
运行相同的命令会返回来自 API 的完整 JSON 元素。为了使用json-path
对其进行操作,了解命令返回的JSON结构非常重要。
使用以下完整 JSON 输出作为参考,带有表达式--output json-path
的$[0].desc
查找并仅返回值"owner_key"
:
[ //``$`` represents the outer array. { // ``[0]`` refers to the first element in the array (using a 0-based index). "id": "60e736a95d585d2c9ccf2d19", "desc": "owner_key", //``.desc`` refers to the ``desc`` field of that element. "roles": [ { "orgId": "5d961a949ccf64b4e7f53bac", "roleName": "ORG_OWNER" } ], "privateKey": "********-****-****-c4e26334754f", "publicKey": "xtfmtguk" }, { "id": "d2c9ccf2d1960e736a95d585", "desc": "member_key", "roles": [ { "orgId": "5d961a949ccf64b4e7f53bac", "roleName": "ORG_MEMBER" } ], "privateKey": "********-****-****-c4e26334754f", "publicKey": "vfgcttku" }, ]
返回列表中特定 API 密钥的描述
在以下示例中,用户使用mongocli iam organizations apiKeys list检索其API密钥。 json-path
表达式使用id
d2c9ccf2d1960e736a95d585
将输出限制为特定JSON对象的desc
字段。
mongocli iam organization apikeys list --output json-path='$[? @.id=="d2c9ccf2d1960e736a95d585"].desc' member_key
返回私有端点的状态
在以下示例中,用户使用mongocli-atlas-privateEndpoints-aws-describe
检索私有端点的信息。 json-path
表达式将输出限制为根元素的status
字段。
mongocli atlas privateendpoint aws describe 601a4044da900269480a2533 --output json-path='$.status' WAITING_FOR_USER