あなたの API ノードの MongoDB インスタンスへ接続する方法の学習
注釈
これは上級機能です
REST ゲートウェイ は幅広いエンドポイントを提供しているので、API ノードの内部データベースに直接接続する必要はありません。
しかし、新規に Symbol のプラグインを開発している場合や広範なブロックチェーンデータを分析している場合は デバッグ目的 で MongoDB に直接接続する必要があるかもしれません。
このガイドのでは、API ノードデータベースインスタンスに接続し、いくつかの基本的なクエリを実行します。
テストネットノードの起動 ガイドでは symbol-bootstrap
を使用して、必要なノードサービス (catapult-server, API エンドポイント, データベースなど) をインスタンス化して実行しました。セキュリティ上の理由から、これらのサービスはすべて Docker コンテナー内で実行され、パブリックエンドポイントを除いて、外部からは分離されています。
これは API ノードがブロックチェーンの状態をキャッシュするために使用する MongoDB データベースへ デフォルトではアクセスできない ことを意味します。内部ポートをホストに転送するには symbol-bootstrap
に次の行を含む “カスタムプリセットファイル <symbol-bootstrap-presets>`_ `を指定します。
databases:
- openPort: true
そして symbol-bootstrap
で構成する際に、このファイルを使用します。例:
symbol-bootstrap start -p testnet -a dual -c custom_parameters.yml
これにより、データベースの TCP ポート 27017
がホストからアクセスできるようになるので注意してください。この機能は 開発目的 でのみ使用してください。
このチュートリアルでは Robo 3T (前 RoboMongo) を使用します。データベースと対話する、クロスプラットフォームの MongoDB 管理ツールです。
問題がある場合は 公式のインストールガイド に従います。
SSH tab へ移動しサーバの詳細を追加します:
SSH Address, username, authentication を置き換えてください。
注釈
このメソッドはデータベースから読み取るためにのみ使用します。MongoDB でドキュメントを直接変更しないでください。
2. In most cases, you may want to filter a set of entries by one of its attributes. To filter, for example, a given transaction type, write a query with the following format on Robo 3T shell:
db.getCollection('transactions').find( { "transaction.type": 16724})
より応用的なクエリを実行するには Robo3T ドキュメントを参照してください。
お探しのものは見つかりましたか? フィードバックをください。