6

現在、次の形式でイベントを保存していますmycategory-mytype-uniqueid。Web 上のさまざまな投稿を読んでわかったことは、それを行うというカテゴリを取得する必要があるというmycategoryことです。私は書いた:

fromCategory('mycategory')
  .foreachStream()
  .when({
    $init: function(){
      return {number: 0};
    },
    $any: function(state, ev){
      linkTo('mynewstream', ev);
      return {number: state.number};          
    }      
  });

mynewstreamvariable を使用してストリームと結果を取得することを期待していますnumberが、どちらも取得していません。それで、私は何が欠けていますか?

4

2 に答える 2

7

同じ問題をグーグルで調べたときにここにたどり着いたので、Alexey Zimarevのコメントに追加したいのですが、評判が少なすぎるので、このコメントを回答に入れる必要があります。

Tomas Jansson が彼自身の回答で書いているように、「$by_category」標準投影には、

first
-

構成。

また、Alexey Zimarev がコメントで書いているように、EventStore を構成してすべてのプロジェクションを実行しても、標準のプロジェクションは自動的に開始されません。

したがって、すべてのプロジェクションを有効にして開始した状態で EventStore を開始するには、yaml 構成ファイルに次のようなものが必要です。

RunProjections: All
StartStandardProjections: True

または、コマンド ライン オプションで構成を行う場合は、次を使用します。

EventStore.ClusterNode.exe --run-projections=all --start-standard-projections=true
于 2016-02-01T15:54:00.047 に答える
2

私はそれを行う方法を考え出しました。デフォルトでは、 eventstore は で分割した後の最後の単語に基づいてカテゴリを作成します-。これを変更したい場合は、$by_categoryプロジェクションを変更する必要があります。そのプロジェクションでは、1 行のみを指定する場合は分割する文字を指定しますが、最初の行をカテゴリとして使用する場合は、ファイルを次のように更新する必要があります。

first
-

-これにより、分割後の最初の単語をイベントのカテゴリとして取得するよう eventstore に指示します。

于 2014-06-05T10:29:34.123 に答える