警告
試験用機能
この機能は実験的な機能です。 MongoDB は スニペット のサポートを提供していません。 この機能は、事前の通知なしにいつでも変更または削除される可能性があります。
バグは予期されていないが、バグが発生した場合はこのプロジェクトの Githubリポジトリ で問題を開いてください。
では、データを操作したり管理タスクを実行したりするmongosh
ためのスクリプトを作成 できます。スクリプトを スニペット としてパッケージ化すると、組織内または MongoDB ユーザー コミュニティ全体でスクリプトを簡単に共有できます。
このページでは次の内容について説明します。
スニペット パッケージ内のスクリプトとメタデータファイルの例については、 Githubの Community スニペット レジストリ のスニペットを参照してください 。
Tip
スニペットを コミュニティ レジストリ に送信する予定の場合は、必ず「 MongoDB Community にスニペット パッケージを提供する 」の情報を確認してください。
スニペット パッケージの作成
このセクションの手順では、スクリプトのパッケージ化に焦点を当てています。 スクリプトの記述の詳細については、「 スクリプトの記述 」を参照してください。
ファイルを準備する
Community Repository をフォークします。
コミュニティリポジトリに貢献する予定の場合は、 スニペットをプロジェクトリポジトリ にフォークしてください。
プライベートリポジトリを作成する場合は、コミュニティリポジトリをフォークする必要はありませんが、次の手順で同様のディレクトリ構造を手動で再作成する必要があります。
パッケージ ディレクトリを作成します。
フォークされたリポジトリのsnippets
ディレクトリの下にスニペット パッケージのディレクトリを作成します。 このディレクトリには、スクリプトのコードといくつかのメタデータ ファイルが含まれます。
この例では、2 つのスニペット パッケージ(decrypt-cards
と update-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
を作成します。LICENSE
LICENSE
ファイルを作成します。後でライセンス識別子文字列を入力する必要があるため、SPDB ライセンス リストからライセンスを選択してみてください。
を作成します。index.js
index.js
ファイルを作成します。
このファイルには、
mongosh
コンソールで公開されるコードへのエントリ ポイントが含まれています。スクリプトは JavaScript で記述され、新しい関数を定義します。
スクリプトは、単一または複数のファイルに含めることができます。
スクリプトは、他のファイルやローカルまたはリモートの npm モジュールを呼び出すことができます。 リモート npm モジュールを
require()
するには、 構造を使用します。const localRequire = require('module').createRequire(__filename);) の例については、 スニペットのインデックス.js
resumetoken
を参照してください。index.js
はPackage.json で参照されています。
Tip
既存のスクリプトがある場合は、index.js
の名前を変更するか、スクリプトをロードするための index.js
ファイルを作成してください。index.js
他のスクリプトをロードする ファイルの例については、 コミュニティリポジトリにあるこちらのファイルを参照してください。
package.json
ファイルを準備します
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" | スニペットの名前。 これは、 |
"version" | パッケージのバージョン。 これは、スニペットを更新するときに増加する必要があります。 |
"description" | スニペットの機能に関する簡単なメモ。 説明の長さが 文字または 文字を超えると、一部の50 60スニペットコマンドで表示の問題が発生する可能性があるため注意してください。 |
"main" | これがコードの開始点 |
"links" | コードのユーザーのライセンス。共有レジストリに貢献する場合は、ライセンスは SPDB ライセンス リスト から取得される必要があります。「 MongoDB Contributor 契約 」も参照してください。 |
"pushConfig" | この値は、パッケージへのアクセスを制御するために使用されます。 |
次のコードを使用して、スケルトンの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パッケージのドキュメント を参照してください。
スニペットの公開
スニペットを共有するには、パッケージをレジストリに公開する必要があります。 パッケージには、次のものが含まれます。
コード
README.md
LICENSE
ファイル
ファイルが完了したら、次の手順に従ってスニペット パッケージを作成および公開します。
レジストリ インデックス ファイルを作成します。
レジストリ インデックス ファイルは、スニペット コードを含む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
を使用することが推奨されますが、レジストリ インデックスを手動で作成することもできます。
新しいスニペット パッケージをインストール
新しいスニペット パッケージをインストールするには、次の手順に従います。
メタデータを更新します。
ローカルmongosh
でスニペット メタデータを更新します。
snippet refresh
MongoDB Community にスニペット パッケージを貢献する
他のMongoDBユーザーに役立つ可能性のあるコード スニペットを記述した場合は、 Githubでホストされているコミュニティリポジトリにそのコード スニペットに貢献するよう招待されます。
MongoDB 共有リポジトリにスニペットを送信するには、次の手順に従います。
リポジトリをクローンします。
Githubから スニペットプロジェクトリポジトリをフォークしてクローンします。
パッケージ ディレクトリを作成します。
スニペット/ の下にコードの新しいディレクトリを追加します。わかりやすい名前を付けます。
MongoDB はプル リクエストを確認します。 それが受け入れられた場合、以下のようにします。
コードをGithubリポジトリにマージします。
これを npm レジストリに公開します。
これを スニペット インデックスに追加します。