スニペットの作成と共有
警告
試験用機能
この機能は実験的な機能です。 MongoDB は スニペット のサポートを提供していません。 この機能は、事前の通知なしにいつでも変更または削除される可能性があります。
バグは予期されていないが、バグが発生した場合はGithub リポジトリ で問題を開いてください。 このプロジェクトでは、
では、データを操作したり管理タスクを実行したりするmongosh
ためのスクリプトを作成 できます。スクリプトを スニペット としてパッケージ化すると、組織内または MongoDB ユーザー コミュニティ全体でスクリプトを簡単に共有できます。
このページでは次の内容について説明します。
スニペット パッケージ内のスクリプトとメタデータ ファイルの例については、 コミュニティ スニペット レジストリ のスニペットを参照してください Github.
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
ファイルを作成します。 後でライセンス識別子string を入力する必要があるため、 SPDB ライセンス リストからライセンスを選択してみてください。
を作成します。index.js
index.js
ファイルを作成します。
このファイルには、
mongosh
コンソールで公開されるコードへのエントリ ポイントが含まれています。スクリプトは JavaScript で記述され、新しい関数を定義します。
スクリプトは、単一または複数のファイルに含めることができます。
スクリプトは、他のファイルやローカルまたはリモートの npm モジュールを呼び出すことができます。 リモート npm モジュールを
require()
するには、 構造を使用します。const localRequire = require('module').createRequire(__filename);) 例については、 index.js
resumetoken
を参照してください スニペットに含まれる文字列。index.js
はPackage.json で参照されています。MongoDB リポジトリに サンプル コードがあります。
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" | スニペットの名前。 これは、 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" } }
package.json
リポジトリには、MongoDBGithub ファイルの例がいくつかあります。
Tip
MongoDB はパッケージ レジストリとして npm を使用します。
npm はpackage.json
ファイルに依存してパッケージを管理します。 詳細については、 npm パッケージのドキュメント package.json
を参照してください の詳細については、 を参照してください。
スニペットの公開
スニペットを共有するには、パッケージをレジストリに公開する必要があります。 パッケージには、次のものが含まれます。
コード
README.md
LICENSE
ファイル
ファイルが完了したら、次の手順に従ってスニペット パッケージを作成および公開します。
レジストリ インデックス ファイルを作成します。
レジストリ インデックス ファイルは、スニペット コードを含むindex.js
ファイルと同じではありません。 レジストリ インデックス ファイルindex.bson.br
には、レジストリ内のスニペット パッケージのメタデータが含まれています。
レジストリ インデックス ファイルは、使用用にアップロードされる前に圧縮する必要があります。 create-index.js スクリプト ディレクトリの ユーティリティは、スニペットのソース ディレクトリを走査して、レジストリ インデックス ファイルの作成に必要な情報を収集します。レジストリ インデックス ファイルが作成された後、 make-index.js
スクリプトもそれを圧縮します。
create-index.js の 実行mongo-snippets
ディレクトリからインデックスを作成します。
node ./scripts/make-index.js
このスクリプトの出力は、 Atlas で圧縮され た レジストリ インデックス ファイル、index.bson.br
。
show-index.js は、 圧縮されたレジストリ インデックス ファイルを表示します。
レジストリ インデックスを作成するには、 make-index.js
を使用することが推奨されますが、レジストリ インデックスを手動で作成することもできます。
新しいスニペット パッケージをインストール
新しいスニペット パッケージをインストールするには、次の手順に従います。
メタデータを更新します。
ローカルmongosh
でスニペット メタデータを更新します。
snippet refresh
MongoDB Community にスニペット パッケージを貢献する
他の ユーザーに役立つ可能性のあるコード スニペット MongoDBを記述した場合は、 コミュニティ リポジトリ に貢献するよう招待されます。Github でホストされています。
MongoDB 共有リポジトリにスニペットを送信するには、次の手順に従います。
リポジトリをクローンします。
スニペット プロジェクト リポジトリ をフォークしてクローンする Github.
パッケージ ディレクトリを作成します。
スニペット/ の下にコードの新しいディレクトリを追加します。 。わかりやすい名前を付けます。
スニペット コードを送信します。
スニペット プロジェクト リポジトリに対してプル リクエストを開きます。
MongoDB はプル リクエストを確認します。 それが受け入れられた場合、以下のようにします。
コードをGithubリポジトリにマージします。
これを npm レジストリに公開します。
これを スニペット インデックスに追加します。