2017-01-02 22 views
1

私はarangodbが現在最高のnosql dbであり、foxxマイクロサービスは素晴らしいリソースだと思います。 3.xxxバージョンに付属する関連ドキュメントは、最小限のサービスのみを構築するのに役立ちます。 また、arangodbストアで例として見つかる多くのアプリケーションは、廃止予定のツール(コントローラやリポジトリなど)で開発されています。 Webインターフェイスで利用可能なウィザードで簡単に新しいサービスを作成できますが、マウントポイントの前に新しいコレクションが作成されなければならない理由はわかりません。だから、完全なREST APIが素晴らしいドキュメンテーションで生成されますが、すでに存在するコレクションの名前を変更しない限り、それは絶対に無意味です。何故ですか ???arangodb 3.1 foxx docs?

+0

これらの新しいプロジェクトにはごみが多すぎます。 –

答えて

1

ジェネレータは、プロトタイプを簡単に作成できるようにするための、クイックボイラープレートジェネレータです。実際には、実世界プロジェクトの出発点ではありません(特に手動でコレクションを作成した場合)。ただすぐにREST APIが必要な場合は、独自のロジックで拡張すると便利です。

あなたは私はあなたがこの入門ガイド続いてきたと確信しているドキュメント読んでてきたように:それはhttps://docs.arangodb.com/3/Manual/Foxx/GettingStarted.html

、非接頭辞コレクション名対接頭辞のための推論などのように与えられる:

コレクション名がハードコードされているため、同じデータベース内に互いに並んでインストールされたサービスの複数のコピーが同じコレクションを共有します。これは常にあなたが望むものとは限らないため、collectionNameメソッドを使用して、マウントポイント固有のプレフィックスを任意のコレクション名に適用して、サービス固有のものにします。コレクションメソッドも提供されます。コレクションメソッドは、db._collectionとほぼ同じように動作しますが、コレクションを検索する前にプレフィックスを適用します。技術的な面では

documentation for the Context#collection methodは別の方法が何をするかを指定:

COLLECTIONNAMEに与えられた名前を渡し、その後、接頭辞の名前でコレクションを検索します。

Context#collectionNameのドキュメント:このサービスのcollectionPrefix

プレフィックス与えられた名前。

そして最後にContext#collectionPrefix

サービス固有のコレクションの名前を導出するコレクションCOLLECTIONNAMEで使用される接頭辞。これはサービスのマウントポイントから導出されます。 /my-foxxmy_foxxになります。

だから、

、はい、あなただけのすべてのサービスが接頭辞バージョン(直接dbオブジェクトを使用して)を共有コレクションを使用する場合は、移動するための方法です。しかしこれはしばしば、異なるサービス間の緊密な結合を促し、最初は別々のサービスとしてそれらを持つという目的を破り、同じサービスの複数のインスタンスを必要とするがデータの共有を望まない場合に問題になるので、代わりにmodule.context.collectionメソッドを使用してください。

関連する問題