Docs Menu
Docs Home
/ /
MongoDB CLI
/

MongoDB CLI 出力のカスタマイズ

項目一覧

  • Go templates
  • json-path 出力タイプ

MongoDB CLI の出力フィールドと形式は、 Goテンプレートまたは JSON パスを使用してカスタマイズできます。

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

mongocli-atlas-clusters-describe次の コマンドは、テンプレートを使用して、 という名前の クラスターの接続string AtlasgetStartedを取得します。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出力タイプは、指定したフィールドにコマンドの結果を制限します。

コマンドに--outputオプションを追加する場合、 json-pathタイプを指定できます。 結果を評価するには、 json-pathに 式 を指定する必要があります。つまり、コマンドによって返されるjsonフィールドに注意する必要があります。

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

json-path 式は、MongoDB CLI コマンドが返す JSON要素を参照します。 $文字はルート要素を表します。通常、オブジェクトまたは配列です。

有効な文字とその関数のリストについては、「 JSONPath 式 」を参照してください。

次の例では、ユーザーが mongocli IAM 組織 apiKeys list を使用して API キーを検索します。json-path式は、キーのリスト全体を返すのではなく、出力を最初のキーのdescフィールドに制限します。

mongocli iam organization apikeys list --output json-path='$[0].desc'
> owner_key

を使用して同じコマンドを実行すると、 --output jsonAPI から完全な JSON 要素が返されます。コマンドによって返されるJSON構造を理解することが重要です。 json-pathはその構造を操作するために必要です。

次の完全なJSON出力を参照すると、式$[0].descを含む--output json-pathは値"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"
},
]

次の例では、ユーザーが mongocli IAM 組織 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

戻る

MongoDB CLI のオートコンプリート有効化