Puede personalizar los campos y el formato de salida de la CLI de MongoDB utilizando un Go
Plantilla o ruta JSON.
Go templates
Puede especificar la plantilla de Go con el comando para una salida sencilla o a través de un archivo independiente para una salida compleja. Para obtener información sobre la plantilla, consulte Plantilla de paquetePara obtener información sobre los tipos y propiedades disponibles para cada respuesta, consulta:
Sintaxis
Puedes especificar una plantilla con el comando utilizando la opción --output o -o:
--output|-o go-template="{{<template>}}"
Puedes especificar una plantilla utilizando un archivo con la opción --output o -o:
--output|-o go-template-file="<path-to-template-file>"
Ejemplos
Recuperar el número de proyectos
El siguiente comando utiliza la plantilla para recuperar un recuento del número de proyectos en la organización especificada utilizando el perfil por defecto:
mongocli iam projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template="Count: {{.TotalCount}}"
El comando anterior devuelve la siguiente salida:
Count: 2
Recuperar tu cadena de conexión del clúster de Atlas
El siguiente comando mongocli-atlas-clusters-describe utiliza la plantilla para recuperar la cadena de conexión de un clúster Atlas llamado getStarted. Utiliza el perfil por defecto para acceder a Atlas.
mongocli atlas clusters describe getStarted -o go-template="Parse: {{.SrvAddress}}"
El comando anterior devuelve una string similar a la siguiente:
Parse: mongodb+srv://getstarted.example.mongodb.net
Puedes usar MongoDB Shell, mongosh, para conectarte al clúster getStarted con el srvAddress y la cadena de conexión. Este ejemplo usa la cadena de conexión retornada por el comando anterior.
mongo "mongodb+srv://getstarted.example.mongodb.net" --username User1 --password ChangeThisPasswordToSomethingSecure
Por ejemplo, considera el siguiente archivo llamado template.tmpl:
Projects: {{range .Results}}{{.ID}} {{end}}
El siguiente comando utiliza el archivo template.tmpl para recuperar los IDs de los proyectos en la organización especificada utilizando el perfil por defecto:
mongocli iam projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template-file="template.tmpl"
El comando anterior devuelve la siguiente salida:
Projects: 5e2211c17a3e5a48f5497de3 5f455b39749bea5fb575dccc
json-path Tipo de salida
El tipo de salida json-path limita los resultados de un comando a los campos que se especifiquen.
Uso
Cuando se agrega la opción --output a un comando, se puede especificar el tipo json-path. Debes proporcionar a json-path una expresión para evaluar tus resultados, lo que significa que debes conocer los campos json devueltos por tu comando.
Sintaxis
<command> --output|-o json-path='$<expression>'
json-path las expresiones se refieren a los Elemento JSON que retorna un comando CLI de MongoDB. El carácter $ representa el elemento raíz, que generalmente es un objeto o un arreglo.
Para obtener una lista de caracteres válidos y sus funciones, consulte Expresiones JSONPath.
Ejemplos
Devuelve la descripción de la primera clave API en una lista
En el siguiente ejemplo, un usuario recupera sus claves API usando mongocli iam organizations apiKeys list. La expresión json-path limita la salida al campo desc de la primera clave, en lugar de devolver la lista completa de claves.
mongocli iam organization apikeys list --output json-path='$[0].desc' owner_key
Ejecutar el mismo comando con --output json devuelve el elemento completo JSON del API. Es importante entender la estructura JSON que devuelve un comando para poder operar sobre ella con json-path.
Utilizando la siguiente salida completa de JSON como referencia, el --output json-path con la expresión $[0].desc encuentra y devuelve únicamente el valor "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" }, ]
Devuelve la descripción de una clave API específica de una lista
En el siguiente ejemplo, un usuario recupera sus claves API usando mongocli iam organizations apiKeys list. La expresión json-path limita la salida al campo desc del objeto JSON específico con id d2c9ccf2d1960e736a95d585.
mongocli iam organization apikeys list --output json-path='$[? @.id=="d2c9ccf2d1960e736a95d585"].desc' member_key
Devolver el estado de un nodo privado
En el siguiente ejemplo, un usuario recupera información para un endpoint privado con mongocli-atlas-privateEndpoints-aws-describe. La expresión json-path limita la salida al campo status del elemento raíz.
mongocli atlas privateendpoint aws describe 601a4044da900269480a2533 --output json-path='$.status' WAITING_FOR_USER