Docs Menu
Docs Home
/ /
Atlas CLI
/

Customize the Atlas CLI Output

On this page

  • Go templates
  • json-path Output Type

You can customize the Atlas CLI output fields and format using a Go template or a JSON path, which makes it easier to automate processes based on the output from the Atlas CLI.

You can specify a Go template within any Atlas CLI command or through a separate file. To learn more about Go templates, see Package template. To learn the types and properties available for each response, see Atlas types.

You can specify a template with the command using the --output or -o option:

--output|-o go-template="{{<template>}}"

Alternatively, you can specify a template through a file using the --output or -o option:

--output|-o go-template-file="<path-to-template-file>"

The following command uses a template to retrieve a count of the number of projects in the specified organization:

atlas projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template="Count: {{.TotalCount}}"

The preceding command returns the following output:

Count: 2

The following atlas clusters describe command uses the template to retrieve the connection string for an Atlas cluster named getStarted. It uses the default profile for accessing Atlas.

atlas clusters describe getStarted -o go-template="Parse: {{.SrvAddress}}"

The previous command returns a string similar to the following:

Parse: mongodb+srv://getstarted.example.mongodb.net

You can use the MongoDB Shell, mongosh, to connect to the getStarted cluster with the srvAddress and the connection string. This example uses the connection string returned by the previous command for a user with the username User1.

mongo "mongodb+srv://getstarted.example.mongodb.net" --username User1 --password ChangeThisPasswordToSomethingSecure

For example, consider the following file named template.tmpl:

Projects: {{range .Results}}{{.ID}} {{end}}

The following command uses the template.tmpl file to retrieve the IDs of the projects in the specified organization:

atlas projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template-file="template.tmpl"

The preceding command returns the following output:

Projects: 5e2211c17a3e5a48f5497de3 5f455b39749bea5fb575dccc

The json-path output type limits the results of a command to the fields you specify.

When you add the --output option to a command, you can specify the type json-path. You must provide json-path with an expression to evaluate against your results, which means you must be aware of the json fields returned by your command.

<command> --output|-o json-path='$<expression>'

json-path expressions refer to the JSON element that an Atlas CLI command returns. The $ character represents the root element, which is usually an object or an array.

For a list of valid characters and their functions, see JSONPath expressions.

In the following example, a user retrieves their API keys with atlas organizations apiKeys list. The json-path expression limits the output to the desc field of the first key, rather than returning the entire list of keys.

atlas organizations apikeys list --output json-path='$[0].desc'
> owner_key

Running the same command with --output json returns the full JSON element from the API. It's important to understand the JSON structure returned by a command in order to operate on it with json-path.

Using the the following full JSON output for reference, the --output json-path with the expression $[0].desc finds and returns only the value "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"
},
]

In the following example, a user retrieves their API keys with atlas organizations apiKeys list. The json-path expression limits the output to the desc field of the specific JSON object with id d2c9ccf2d1960e736a95d585.

atlas organizations apikeys list --output json-path='$[? @.id=="d2c9ccf2d1960e736a95d585"].desc'
> member_key

In the following example, a user retrieves information for a private endpoint with atlas privateEndpoints aws describe. The json-path expression limits the output to the status field of the root element.

atlas privateendpoints aws describe 601a4044da900269480a2533 --output json-path='$.status'
> WAITING_FOR_USER

Back

Environment Variables