我目前正在以下列格式存储事件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
的结果,但我没有得到。那我错过了什么?
答案 0 :(得分: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
答案 1 :(得分:2)
我想出了怎么做。默认情况下,eventstore在-
上拆分后根据最后一个单词创建类别。如果要更改此设置,则必须修改$by_category
投影。在该投影中,如果只指定一行,则指定要拆分的字符,但如果要将第一行用作类别,则必须将文件更新为:
first
-
告诉eventstore在将-
拆分为事件的类别后,取第一个单词。