Docs Menu
Docs Home
/
mongosh
/

スニペットの作成と共有

警告

試験用機能

この機能は実験的な機能です。 MongoDB は スニペット のサポートを提供していません。 この機能は、事前の通知なしにいつでも変更または削除される可能性があります。

バグは予期されていないが、バグが発生した場合はこのプロジェクトの Githubリポジトリ で問題を開いてください。

では、データを操作したり管理タスクを実行したりするmongosh ためのスクリプトを作成 できます。スクリプトを スニペット としてパッケージ化すると、組織内または MongoDB ユーザー コミュニティ全体でスクリプトを簡単に共有できます。

このページでは次の内容について説明します。

  • スニペットパッケージを作成します。

  • スニペット パッケージをレジストリに公開します。

スニペット パッケージ内のスクリプトとメタデータファイルの例については、 Githubの Community スニペット レジストリ のスニペットを参照してください 。

Tip

このセクションの手順では、スクリプトのパッケージ化に焦点を当てています。 スクリプトの記述の詳細については、「 スクリプトの記述 」を参照してください

1

コミュニティリポジトリに貢献する予定の場合は、 スニペットをプロジェクトリポジトリ にフォークしてください。

プライベートリポジトリを作成する場合は、コミュニティリポジトリをフォークする必要はありませんが、次の手順で同様のディレクトリ構造を手動で再作成する必要があります。

2

フォークされたリポジトリのsnippetsディレクトリの下にスニペット パッケージのディレクトリを作成します。 このディレクトリには、スクリプトのコードといくつかのメタデータ ファイルが含まれます。

この例では、2 つのスニペット パッケージ(decrypt-cardsupdate-auth)のディレクトリが示されています。コミュニティ スニペット ディレクトリの内容は、わかりやすくするために省略されています。

mongo-snippets
|
├── scripts
│   ├── make-index.js
│   └── show-index.js
└── snippets
├── analyze-schema
├── decrypt-cards
│   ├── LICENSE-Community.txt
│   ├── README.md
│   ├── error-matchers.js
│   ├── index.js
│   └── package.json
├── mock-collection
├── mongocompat
├── resumetoken
├── spawn-mongod
└── update-auth
├── LICENSE
├── README.md
├── index.js
└── package.json
3

README.mdを作成します。 README.mdは、コードの使用方法を説明します。 このファイルは、ユーザーがスニペットにsnippet helpを入力すると表示されます。

4

LICENSEファイルを作成します。後でライセンス識別子文字列を入力する必要があるため、SPDB ライセンス リストからライセンスを選択してみてください。

5

index.jsファイルを作成します。

  • このファイルには、 mongoshコンソールで公開されるコードへのエントリ ポイントが含まれています。

  • スクリプトは JavaScript で記述され、新しい関数を定義します。

  • スクリプトは、単一または複数のファイルに含めることができます。

  • スクリプトは、他のファイルやローカルまたはリモートの npm モジュールを呼び出すことができます。 リモート npm モジュールをrequire()するには、 構造を使用します。

    const localRequire = require('module').createRequire(__filename);)

    の例については、 スニペットのインデックス.js resumetokenを参照してください。

  • index.jsPackage.json で参照されています。

  • MongoDBリポジトリに例コードがあります。

Tip

既存のスクリプトがある場合は、index.js の名前を変更するか、スクリプトをロードするための index.jsファイルを作成してください。index.js他のスクリプトをロードする ファイルの例については、 コミュニティリポジトリにあるこちらのファイルを参照してください。

package.json には、パッケージ レジストリがスニペットを管理するために使用するメタデータが含まれています。

最小のpackage.jsonファイルは次のようになります。

{
"name": "@mongosh/snippet-resumetoken",
"snippetName": "resumetoken",
"version": "1.0.2",
"description": "Resume token decoder script",
"main": "index.js",
"license": "Apache-2.0",
"publishConfig": {
"access": "public"
}
}

パラメーターは次のとおりです。

フィールド
説明

"name"

スニペットを含む npm パッケージ。

" OpsName"

スニペットの名前。 これは、 installのようなコマンドで使用される名前です。

"version"

パッケージのバージョン。 これは、スニペットを更新するときに増加する必要があります。

"description"

スニペットの機能に関する簡単なメモ。 説明の長さが 文字または 文字を超えると、一部の50 60スニペットコマンドで表示の問題が発生する可能性があるため注意してください。

"main"

これがコードの開始点index.jsです。 他のファイルの関数は、 mongosh shell でも使用できるようにスコープ設定することができることに注意してください。

"links"

コードのユーザーのライセンス。共有レジストリに貢献する場合は、ライセンスは SPDB ライセンス リスト から取得される必要があります。「 MongoDB Contributor 契約 」も参照してください。

"pushConfig"

この値は、パッケージへのアクセスを制御するために使用されます。public が一般的ですが、 npm には他のオプションも用意されています。

次のコードを使用して、スケルトンのpackage.jsonファイルを作成します。 ファイルを編集し、各UPDATEを置き換えて、スニペット パッケージに値を挿入します。

{
"name": "@UPDATE/UPDATE",
"snippetName": "UPDATE",
"version": "UPDATE",
"description": "UPDATE",
"main": "UPDATE",
"license": "UPDATE",
"publishConfig": {
"access": "UPDATE"
}
}

MongoDB Githubリポジトリには package.json ファイルの例がいくつかあります

Tip

MongoDB はパッケージ レジストリとして npm を使用します。

npm はpackage.jsonファイルに依存してパッケージを管理します。package.json の詳細については、 npmパッケージのドキュメント を参照してください。

スニペットを共有するには、パッケージをレジストリに公開する必要があります。 パッケージには、次のものが含まれます。

ファイルが完了したら、次の手順に従ってスニペット パッケージを作成および公開します。

1

レジストリ インデックス ファイルは、スニペット コードを含むindex.jsファイルと同じではありません。 レジストリ インデックス ファイルindex.bson.brには、レジストリ内のスニペット パッケージのメタデータが含まれています。

レジストリインデックスファイルは、使用用にアップロードされる前に圧縮する必要があります。スクリプトディレクトリの create-index.js ユーティリティは、スニペットのソース ディレクトリを走査して、 レジストリインデックスファイル の作成に必要な情報を収集します。レジストリインデックスファイルが作成された後、make-index.jsスクリプトもそれを圧縮します。

mongo-snippetsディレクトリから create-index.js を実行し、インデックスを作成します。

node ./scripts/make-index.js

このスクリプトの出力は、brAtlas で圧縮されたレジストリインデックスファイル(index.bson.br)です。

show-index.js を使用して圧縮された レジストリインデックスファイルを表示できます。

レジストリ インデックスを作成するには、 make-index.jsを使用することが推奨されますが、レジストリ インデックスを手動で作成することもできます。

2

スニペットとレジストリ インデックス ファイルをGithubリポジトリにコミットします。

3

変更を npm レジストリに公開します。

npm publish --access public

新しいスニペット パッケージをインストールするには、次の手順に従います。

1

ローカルmongoshでスニペット メタデータを更新します。

snippet refresh
2

スニペットをインストールします。

snippet install YOUR_NEW_SNIPPET

他のMongoDBユーザーに役立つ可能性のあるコード スニペットを記述した場合は、 Githubでホストされているコミュニティリポジトリにそのコード スニペットに貢献するよう招待されます。

MongoDB 共有リポジトリにスニペットを送信するには、次の手順に従います。

1

MongoDB Contributor 契約を読みて完了します。

2

Githubから スニペットプロジェクトリポジトリをフォークしてクローンします。

3

スニペット/ の下にコードの新しいディレクトリを追加します。わかりやすい名前を付けます。

4

スニペット パッケージを作成します。 次のファイルが含まれていることを確認します。

  • package.json

  • index.js

  • README.md

  • LICENSE

レジストリ インデックス ファイルを作成する必要はありません。 スニペット パッケージが受け入れられた場合、MongoDB はレジストリ インデックス ファイルを更新します。

5

Githubリポジトリに変更をコミットします。

MongoDB はプル リクエストを確認します。 それが受け入れられた場合、以下のようにします。

  • コードをGithubリポジトリにマージします。

  • これを npm レジストリに公開します。

  • これを スニペット インデックスに追加します。

戻る

コンソールでの 使用

項目一覧