次に、ドキュメントの内容を編集できるフォームがあります。*ビューに切り替えます。[ドキュメントの作成]以下のJSONをコピーしてエディター領域に貼り付けてください(中括弧のセットを1つだけ使用してください)。2584}このモードでは、キーを引用符で囲む必要があることに注意してください。完了したら、[保存]ボタンをクリックします。保存が成功したことを示すために、ページがしばらく緑色で点滅します。*ページに戻る必要があります。「アルバム」コレクションをクリックすると、新しいエントリが表示されます。文書の内容を編集するには、文書概要で編集する行をクリックするだけです。新しいドキュメントを作成するときと同じエディターが表示されます。ドキュメントを削除するドキュメントの削除は、各ドキュメント行の最後にある*-*アイコンを押すだけです。プロンプトが表示されたら削除を確認します。特定のコレクションの*コレクション*概要ページでは、データのエクスポートとインポート、インデックスの管理、ドキュメントのフィルタリングを行うことができます。前述したように、Webインターフェースには多くの機能があります。すべての機能をカバーするのはこのチュートリアルの範囲を超えているため、他の機能を自分で試してみてください。このチュートリアルでは、もう1つの機能、AQLエディターについて詳しく説明します。ステップ8-AQLを使用したデータのクエリはじめに述べたように、ArangoDBにはAQLと呼ばれる本格的なクエリ言語が付属しています。AQLエディター*]タブをクリックします。空白のエディターが表示されます。[AQLエディター]エディターには、構文の強調表示、元に戻す/やり直し機能、およびクエリの保存があります。次のセクションでは、AQLの機能のいくつかについて説明します。[包括的なドキュメント]をご覧ください。AQLの基本AQLは宣言型言語です。クエリはどのような結果を達成すべきかを表現しますが、どのように達成すべきかは表現しません。データのクエリだけでなく、データの変更も可能です。両方のアプローチを組み合わせて、複雑なタスクを達成できます。AQLでのクエリの読み取りと変更は、ACIDに完全に準拠しています。操作は全体で完了するか、まったく完了しません。データの読み取りも、データの一貫したスナップショットで行われます。データの作成から始めます。+」コレクションにさらに曲を追加しましょう。次のクエリをコピーして貼り付けてください。songs[送信]ボタンをクリックします。このクエリはすでにAQLの動作の良い例です。`でドキュメントのリストを反復処理し、各ドキュメントで操作を実行します。リストは、JSONオブジェクトまたはデータベース内のコレクションを含む配列にすることができます。操作には、フィルタリング、変更、追加ドキュメントの選択、新しい構造の作成、または(この例のように)データベースへのドキュメントの挿入が含まれます。実際、AQLはすべてのCRUD操作もサポートしています。データベース内のすべての曲の概要を取得するには、次のクエリを実行します。+`と同等です(エディターは最後のクエリを記憶しているため、*ゴミ箱*アイコンをクリックしてエディターをクリアする必要があります)。songこれで、曲データベースのすべてのエントリがテキストフィールドに表示されます。*タブに戻り、エディターを再度クリアします。別の例では、3分の再生時間を超える曲の基本的なフィルタリングを行います。song結果は、エディターの[結果]タブに表示されます。[新しい関数の追加]も可能です。クエリ内で変数を割り当てる機能と組み合わせて、非常に複雑な構造を構築できます。これにより、データ集中型の操作をクライアントで実行するのではなく、データ自体に近づけることができます。+」としてフォーマットします。}今回は、曲のタイトルと期間を返します。+`を使用すると、入力ドキュメントごとに返す新しいJSONオブジェクトを作成できます。AQLは多くの機能を備えた複雑な言語です。NoSQLデータベースのコンテキストでは、言及する価値のあるもう1つの機能があります。AQLに参加しますデータベースとしてドキュメントストアを使用すると、いくつかの意味があります。リレーショナルデータベースを使用する場合とは異なる方法でデータをモデル化する必要があります。ドキュメントストアでは、通常はリレーションとしてモデル化されるデータを埋め込むことができますが、このアプローチは常に実行できるとは限りません。関係がもっと意味をなす場合があります。データベースに必要な結合を実行させる機能がないと、クライアント上のデータを結合するか、データモデルを非正規化しサブドキュメントを埋め込むことになります。これは、複雑で大きなデータセットの場合に特に問題になります。それでは、参加しましょう。+`コレクションへの参照に置き換えます。III_をドキュメントとして作成しました。前の例でアルバムを削除した場合は、戻ってアルバムを再度追加してください。songs最初にすべてのアルバムを反復処理してから、このアルバムに関連付けられているすべての曲を検索します。`属性を含む新しいドキュメントを作成することです。REPLACE」を使用します。以前に新しい曲のドキュメントを作成したため、これは可能です。このデータ移行後、アルバムドキュメントを1か所で管理できるようになりました。曲のデータを取得するときに、結合を使用して、アルバム名を再び曲のドキュメントに追加できます。})AQLで達成できることの表面をかろうじて削りましたが、何が可能かについての良い印象を持っているはずです。完全な言語リファレンスおよびその他の例については、広範なhttps://docs.arangodb.com/Aql[documentation]を参照してください。(オプション)ステップ9-バックアップの作成ArangoDBデータベースを運用環境に入れたら、バックアップについて考え始める必要があります。その前にバックアップを確立することをお勧めします。DigitalOceanのバックアップ機能を使用することは良いスタートです。+]を使用して、よりきめ細かくすることもできます。バックアップ対象とバックアップの保存場所を制御します。(オプション)ステップ10-アップグレードArangoDBの新しいバージョンがリリースされると、構成済みのパッケージリポジトリを介して公開されます。最新バージョンをインストールするには、最初にリポジトリインデックスを更新する必要があります。updateデータベースを停止します。stop最新バージョンに更新します。arangodbデータベースファイル自体をアップグレードする必要がある場合があります。upgradeその後、通常どおりサーバーを起動します。startFoxxアプリケーションでArangoDBを拡張する終了する前に、もう1つ言及する価値があります。APIをカスタムエンドポイントで拡張できます。この機能はhttps://docs.arangodb.com/Foxx[Foxx]と呼ばれます。Foxxは、ArangoDBを使用して永続データを使用してカスタムマイクロサービスを構築するフレームワークです。FoxxアプリはJavaScriptで記述され、ArangoDBのV8コンテキストで実行されます。アプリはネイティブJavaScriptインターフェイスに直接アクセスできるため、HTTPラウンドトリップなしでデータにアクセスできます。Foxxは、RubyのSinatraまたはPythonのFlaskの意味で最小限のフレームワークを提供します。コントローラーを作成して、着信要求を処理し、モデル内にビジネスロジックを実装します。Foxxアプリは、Webインターフェイスを介して管理でき、他のアプリと同様に開発できます。バージョン管理下に置いたり、Gitリポジトリから直接デプロイすることもできます。これらは単なるJavaScriptであるため、単体テストは簡単です。単純なユースケースでは、リレーショナルデータベースシステムのストアドプロシージャによく似ていますが、Foxxコードの保守とテストははるかに簡単です。Foxxアプリをストアドプロシージャとして使用することは、ほんの始まりに過ぎません。特定のビジネスロジックを共有する複数のアプリケーションがあるとします。Foxxを使用すると、このビジネスロジックをデータの近くに移動して、処理を高速化し、コンポーネント間で共有実装を分散する複雑さを軽減できます。ArangoDBをクラスターとして実行すると、クラスター内の各メンバーでFoxxアプリを利用できるようになります。Foxxを使用すると、Webアプリケーション全体も可能です。AngularやEmberなどのフロントエンドフレームワークを使用すると、データベースから完全にアプリケーションを実行できます。これに追加のインフラストラクチャは必要ありません。本番環境では、最終的にNginxなどをArangoDBの前に配置します。ArangoDBには、認証やセッションストアなどの一般的な機能を提供するFoxxアプリが付属しています。HTTP機能に依存しない場合は、npmパッケージを使用することもできます。[cookbook]を参照してください。結論ArangoDBは、サポートされているさまざまなユースケースを持つ強力なデータベースです。管理されており、非常に優れたドキュメントがあります。主要なオペレーティングシステムにはすべてパッケージが用意されているため、使い始めるのは簡単です。Webインターフェースは、機能を調査する負担を軽減します。リレーショナルのバックグラウンドから来た場合、AQLを使用することはSQLを使用することと同じです。JavaScriptアプリケーションを使用してデータベースを拡張するオプションとグラフ機能を使用すると、ArangoDBを完全なパッケージにして、アプリケーションを開始して成長させることができます。これまでに、ArangoDBの全体像を共有しました。次のステップとして、以下を提案します。APIとやり取りします。[ネイティブ言語ドライバー]の1つを介して直接使用することはほとんどないため、ここでは取り上げませんでした。ArangoDBのデータとのやり取りは、ほとんどの場合AQLを介して行われます。実稼働環境でArangoDBを使用する場合は、慣れる必要があります。ArangoDBはドキュメントストアであるだけでなく、非常に強力なグラフ機能も備えています。有向グラフの頂点としてデータをモデル化できます。+`参照を使用する代わりに、それらの頂点間のエッジとしてモデル化できます。[メリットがあります]。