- This version of the documentation is archived and no longer supported. View the current documentation to learn how to upgrade your version of the Atlas CLI.
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.
Go templates
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.
Syntax
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>"
Examples
Retrieve the Number of Projects
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
Retrieve Your Atlas Cluster Connection String
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
json-path
Output Type
The json-path
output type limits the results of a command to the
fields you specify.
Usage
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.
Syntax
<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.
Examples
Return the description of the first API key in a list
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" }, ]
Return the description of a specific API key in a list
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
Return the status of a private endpoint
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