AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

外部依存関係

外部依存関係は、自分で実装できない、または実装したくないコードを含むライブラリです。 たとえば、外部サービスには公式のライブラリを使用したり、データ構造やアルゴリズムのカスタム実装を使用したりできます。

Atlas は依存関係を自動的に変換し、ほとんどの組み込みNode.jsモジュールもサポートします。

注意

独自のモジュールを作成

ほとんどのnpmモジュールはサードパーティによって記述されていますが、アプリケーション固有のロジックを格納するために独自のnpmモジュールを作成して公開することもできます。モジュールをNode.js Community で使用できるようにしたり、プライベート使用のために予約したりすることもできます。詳細については、「 レジストリへのパッケージの変換 に関する npm のガイド 」を参照してください。

To import and use an external dependency, you first need to add the dependency to your application. You can either add packages by name or upload a directory of dependencies.

重要

既存の依存関係の上書き

アプリが使用できる外部パッケージを指定するには、一度に 1 つの方法のみを使用できます。 依存関係を指定するために使用した最新の方法は真実のソースであり、以前の指定を上書きします。

たとえば、UI を介して名前を追加したパッケージは、アップロードされた依存関係ディレクトリにあるパッケージを含め、以前に追加した同じパッケージのコピーを上書きします。

名前を使用してnpmレジストリからアプリにパッケージを追加できます。特定のバージョンを追加するか、最新バージョンを使用できます。

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Streaming Data見出しの下のTriggersをクリックします。

Triggersページが表示されます。

2
  1. 依存関係を追加する trigger を選択します。

  2. Edit Trigger ページで、Function セクションにGoし、Add Dependency をクリックします。

3
  1. Add Dependencyモーダルウィンドウに、次の情報を含めます。

    フィールド
    説明

    パッケージ名を定義する

    npm パッケージの名前。

    パッケージ バージョン

    任意。 使用する依存関係の特定のバージョン。 デフォルトでは 、Atlas 関数は利用可能な最新バージョンを使用します。

  2. パッケージを追加するには、 Addをクリックします。

依存関係を追加する状況は、ウィンドウの下部にある進行状況追跡で追跡できます。 進行状況追跡は、パッケージが成功したか失敗したかを示すメッセージを提供します。 失敗メッセージには、パッケージを追加できなかった理由に関する追加情報が含まれています。

4

依存関係を正常に追加すると、メインのTriggersページのDependenciesタブの依存関係のリストに表示されます。

圧縮されたnode_modulesディレクトリのパッケージをアプリにアップロードできます。 圧縮された依存関係ディレクトリは 15 MB を超えることはできません。

重要

既存の依存関係の上書き

アーカイブをインポートすると、既存の依存関係がすべて削除されます。

1

外部依存関係をアップロードするには、まず少なくとも 1 つの Node.js パッケージを含むローカルnode_modulesフォルダーが必要です。 次のコード スニペットを使用して、アップロードする依存関係をローカルにインストールできます。

npm install <package name>

node_modulesフォルダがまだ存在しない場合、このコマンドはそれを自動的に作成します。

注意

インストールの代替方法

また、 package.jsonを構成し、 npm installコマンドを実行して、 package.jsonにリストされているすべてのパッケージ(およびその依存関係)をインストールすることもできます。

npmと node_modules の詳細については、npmドキュメント を参照してください。

2

すべてのnpmモジュールをダウンロードしたので、Atlas にアップロードできるように、アーカイブにパッケージ化する必要があります。 Atlas は、 .tar 、 .tar.gz 、 .tgz 、 .zipアーカイブ形式をサポートしています。

node_modulesフォルダーを含むアーカイブを作成します。

tar -czf node_modules.tar.gz node_modules/

依存関係を含むアーカイブを作成したら、Atlas UIを使用して依存関係アーカイブをアップロードできます。

3
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Streaming Data見出しの下のTriggersをクリックします。

Triggersページが表示されます。

4
  1. Dependencies タブを選択します。

  2. [Upload Folder] をクリックします。

  3. [] モーダルで、[ node_modules.tar.gz Upload Folder ] をクリックし、作成した [] アーカイブを選択します。

  4. Add をクリックします。Atlas がアーカイブ ファイルをアップロードします。インターネット接続の速度および依存関係アーカイブのサイズによっては数分かかる場合があります。

  5. Atlas は、操作の成功または失敗を示すバナーを表示します。 成功した場合、 Dependenciesタブには依存関係アーカイブに含めた依存関係のリストが表示されます。

    • 配置案が有効になっている場合は、これらの変更を適用するためにReview & Deployもクリックする必要があります。

    • 配置案が無効になっている場合、依存関係アーカイブのサイズに応じて、 5から60秒以内に変更が有効になります。

アプリに追加した組み込みモジュールと外部パッケージをインポートし、関数で使用できます。 パッケージをインポートするには、関数本体内からパッケージ名を指定してrequire()を呼び出します。

重要

モジュールをインポートするには

Node.jsプロジェクトは通常、各ファイルのグローバル スコープにrequire()呼び出しを配置しますが、Atlas はこのパターンをサポートしていません。 関数のスコープ内でrequire()呼び出しを配置する必要があります。

exports = () => {
const R = require("ramda");
return R.map(x => x*2, [1,2,3]);
}
exports = function(arg){
const cloneDeep = require("lodash/cloneDeep");
var original = { name: "Deep" };
var copy = cloneDeep(original);
copy.name = "John";
console.log(`original: ${original.name}`);
console.log(`copy: ${copy.name}`);
return (original != copy);
};

次の例では、 lodash 依存関係を使用して Atlas Triggers 関数を作成しています。

1
  1. まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. サイドバーで、 Streaming Data見出しの下のTriggersをクリックします。

Triggersページが表示されます。

2
  1. 依存関係を追加する trigger を選択します。

  2. Edit Trigger ページで、Function セクションにGoし、Add Dependency をクリックします。

3

。 Add Dependency モーダルウィンドウで、Define a Package Nameフィールドに lodash と入力します。

  1. パッケージを追加するには、 Addをクリックします。
4

依存関係を正常に追加すると、メインのTriggersページのDependenciesタブの依存関係のリストに表示されます。

5

Triggersページで、 Add Triggerをクリックします。

Trigger Details ペインで、値を追加します。

設定
値

trigger タイプ

Database

監視

Collection

クラスター名

Atlas クラスターの名前。

databaseName

trigger を実行するデータベースの名前。

コレクション名

trigger を実行するコレクションの名前。

操作タイプ

Insert Document, Update Document, Delete Document, Replace Document

完全な文書

disabled

ドキュメントの変更前のイメージ

disabled

6

Function ペインで、次のコードを貼り付けます。

exports = async function(changeEvent) {
const _ = require('lodash');
const temp = ['a', 'b', 'c'];
const result = _.filter(temp, (val) => val === 'a');
console.log("result: ", result);
return result;
};

関数を実行するには、Run をクリックします。タイムスタンプと実行時間の後、出力は次のようになります。

> logs:
result: a
> result:
[
"a"
]
> result (JavaScript):
EJSON.parse('["a"]')