Watcher To MongoDB クイックスタート

MongoDB は、構造化データと非構造化データの両方を扱うことに優れた、強力なクロスプラットフォームドキュメントデータベースです。JSONライクなドキュメントに基づく柔軟でスキーマレスなデータモデルにより、アドホッククエリとインデックス作成を必要とする動的アプリケーションに最適な選択肢となっています。
MongoDBを使用することで、Watcherからのデータを保存し、さらなる処理や他のプロジェクトアプリケーションで利用するための簡単な方法が提供されます。
このチュートリアルでは、Watcher APIとNode-REDを使用してMongoDBにシームレスにデータを送信する方法をガイドします。これは、リアルタイムデータ処理と永続化を要求するプロジェクトに最適なセットアップです。
パート1. Node-REDでWatcherをセットアップする
ステップ1. Node-REDをインストールする
まず最初に、以下のビデオに従ってWatcherでタスクを実行する必要があります。詳細を知りたい場合はこちらをクリックしてください。
このセットアップにはNode-REDとWatcher APIが必要です。Node-REDをインストールしていない場合、またはWatcher APIと接続していない場合は、こちらから始めてください:Watcher to Node-RED クイックスタート。
ステップ2. MongoDBのためのデータを準備する
WatcherをNode-REDと統合した後、次のステップはWatcherからのデータをMongoDB用に準備することです。Node-REDのfunctionノードを使用して、データを適切にフォーマットします。

このチュートリアルの目的では、単純にすべてのWatcherデータを返します。ただし、アプリケーションの必要に応じてデータを変換することをお勧めします。

データをフォーマットするNode-RED Functionの例
msg.payload = {
"tlid": msg.payload.value[0].tlid,
"tn": msg.payload.value[0].tn,
"content": msg.payload.value[0].content,
"image_url": msg.payload.value[0].image_url,
"timestamp": msg.payload.timestamp,
"orgId": msg.payload.orgId,
"eui": msg.payload.eui,
"channel": msg.payload.channel,
"measurementID": msg.payload.value[0].measurementID
};
return msg;
パート2. MongoDBのセットアップ
ステップ3. アカウントの作成
次に、MongoDBアカウントを作成するか、既にアカウントをお持ちの場合はログインしてください。MongoDBが初めての場合は、mongodb.comにアクセスして無料アカウントにサインアップしてください。

ステップ4. 新しいクラスターのデプロイ
ログイン後、新しいクラスターのデプロイに進みます:

- クラスター構成の選択: 開発用には、無料で小規模なテストに十分なM0構成を推奨します。ただし、プロジェクトの要件により適した構成がある場合は、別の構成を選択していただいても構いません。
- クラウドプロバイダーの選択: 広範囲な可用性と信頼性のためAWSを選択しましたが、地理的または技術的要件に応じて、Google CloudやAzureなどの他のプロバイダーも同様に有効です。
- リージョンの選択: レイテンシを最小化し、パフォーマンスを向上させるため、主要なユーザーベースに最も近いリージョンを選択してください。

ステップ5. データベースセキュリティの設定
ノードが作成されたら、左側のサイドバーのSecurityの下にあるQuickstartメニューに移動します。ここで、ユーザー名とパスワードを指定してデータベースユーザーを作成します。

デフォルトでは、ユーザーには任意のデータベースに対する読み取りと書き込み権限が付与されます。これらの権限を更新したり、後で追加のユーザーを作成したりすることができます。
ユーザーの設定後、Quickstartページにとどまり、下にスクロールして現在のIPアドレスをIPアクセスリストに追加します。

ステップ6. データベースとコレクションの作成
左側のサイドバーで、Deploymentカテゴリの下にあるDatabasesメニューをクリックします。次に、Browse Collectionsをクリックしてデータベース管理ページを開きます。ここですべてのデータベースとコレクションが管理されます。

データベースマネージャー内で、Add My Own Dataをクリックして新しいデータベースとコレクションの作成プロセスを開始します。

新しいデータベースとコレクションの名前を入力するよう求めるプロンプトが表示されます。それぞれに希望する名前を入力してください。
名前を入力した後、Createボタンをクリックして新しいデータベースとコレクションの作成を完了します。

ステップ7. ホスト名の取得
MongoDB Atlasダッシュボードにログインすることから始めます。ここから、左側のサイドバーのDatabaseメニューに移動してクラスターを見つけます。希望するクラスターを見つけて、それに関連付けられたConnectボタンをクリックします。これにより、一連の接続オプションが開きます。

表示された接続オプションで、Shellをクリックします。

MongoDB Shellオプションを選択した後、**Run your connection string in your command line.**というタイトルのセクションに案内されます。ここで、完全な接続文字列が表示されます。
接続文字列で、mongodb+srv://
の後から始まり、/
文字に到達するまで続く部分を探してください。この部分がホスト名です。通常、クラスター名の後に.mongodb.net
が続きます。
例えば、接続文字列が次のような場合:
mongosh "mongodb+srv://my-cluster123.mongodb.net" --apiVersion 1 --username my-username
ホスト名は以下のようになります:
my-cluster123.mongodb.net

Part 3. MongoDB データベースを Node-RED に接続
ステップ 8. MongoDB モジュールをインストール
三本線のアイコンをクリックし、Manage palette オプションをクリックします。これにより、ノードを追加または削除できる新しいウィンドウが開きます。

パレット管理ウィンドウ内の Install タブに切り替えます。検索バーで mongodb-aleph
と入力してモジュールを見つけます。次に、node-red-contrib-mongodb-aleph エントリの横にある install ボタンをクリックします。

node-red-contrib-mongodb-aleph モジュールは、このチュートリアルの執筆時点(2024年7月)での現在の互換性と信頼性のために推奨されています。ただし、Node-RED モジュールの可用性と機能は時間の経過とともに変わる可能性があります。Node-RED ライブラリまたは GitHub リポジトリで最新のユーザーフィードバックと互換性ノートを確認することをお勧めします。このモジュールで問題が発生した場合は、より適切なオプションについて Node-RED ライブラリにリストされている他の MongoDB モジュールを検討してください。
ステップ 9. MongoDB ノードを設定
MongoDB モジュールをインストールしたら、mongodb - aleph - out ノードを Node-RED フローにドラッグし、function ノードに接続します。

MongoDB ノードをダブルクリックして設定します。次に、server フィールドの横にあるプラスアイコンをクリックして、新しいサーバー設定を追加します。

- 先ほど取得したホスト名を入力します。
- Connection topology をドロップダウンから DNS Cluster (mongodb+srv://) に変更します。
- MongoDB データベースの名前を入力します。
- セキュリティ設定で設定したユーザー名を入力します。
- 対応するパスワードを入力します。
- Node-RED 内で使用される MongoDB 接続の説明的な名前を提供します。
次に、Add または Update をクリックしてサーバー設定を保存します。

サーバーが設定されたら、データ挿入の詳細を指定できます:
- データを挿入したい MongoDB コレクションの名前を入力します。
- 操作を Insert に設定します。これにより、コレクションに新しいドキュメントが追加されます。
Done をクリックしてセットアップを完了します。

ステップ 10. デプロイ
最後に、Node-RED インターフェースの右上にある Deploy ボタンをクリックしてフローをデプロイします。このアクションにより、設定されたノードがアクティブになり、function ノードから MongoDB へのデータフローが可能になります。

これで、MongoDB にデータが入力されるのを確認できます。

Watcher と MongoDB の統合に成功したことをお祝いします!開発の取り組みにおいて、エキサイティングな機会の扉を開きました。MongoDB の堅牢な機能を活用した革新的なアプリケーションの作成に飛び込む準備をしてください。次に開発される素晴らしいソリューションを楽しみにしています!
技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!お客様の製品体験を可能な限りスムーズにするため、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルをご用意しております。