Docs Menu
Docs Home
/
MongoDB Shell
/

スニペットの作成と共有

項目一覧

  • スニペット パッケージの作成
  • スニペットの公開
  • 新しいスニペット パッケージをインストール
  • MongoDB Community にスニペット パッケージを貢献する

警告

試験用機能

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

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

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

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

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

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

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

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ファイルを作成します。 後でライセンス識別子string を入力する必要があるため、 SPDB ライセンス リストからライセンスを選択してみてください。

5

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

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

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

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

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

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

    例については、 index.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"
}
}

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

Tip

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

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

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

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

1

レジストリ インデックス ファイルは、スニペット コードを含む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を使用することが推奨されますが、レジストリ インデックスを手動で作成することもできます。

2

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

3

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

npm publish --access public

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

1

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

snippet refresh
2

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

snippet install YOUR_NEW_SNIPPET

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

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

1

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

3

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

4

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

  • package.json

  • index.js

  • README.md

  • LICENSE

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

5

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

6

スニペット プロジェクト リポジトリに対してプル リクエストを開きます。

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

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

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

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

戻る

コンソールでの 使用