6

我目前以以下格式存储事件mycategory-mytype-uniqueid。在阅读了网络上的各种帖子后,我了解到我应该得到一个叫做mycategory做那个的类别。我已经写了 :

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

我现在希望得到一个流mynewstream以及一个带有变量的结果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投影。在该投影中,如果仅指定一行,则指定要拆分的字符,但如果要将第一行用作类别,则必须将文件更新为:

first
-

这告诉 eventstore 在拆分后将第一个单词-作为事件的类别。

于 2014-06-05T10:29:34.123 回答