我目前正在以下列格式存储事件mycategory-mytype-uniqueid.在阅读了网上各种帖子后我所理解的,我应该得到一个名为" mycategory做" 的类别.我已经写了 :
fromCategory('mycategory')
.foreachStream()
.when({
$init: function(){
return {number: 0};
},
$any: function(state, ev){
linkTo('mynewstream', ev);
return {number: state.number};
}
});
Run Code Online (Sandbox Code Playgroud)
我现在希望得到一个流mynewstream以及一个变量的结果number,但我没有得到.那我错过了什么?
我想补充Alexey Zimarev的意见,因为我在搜索同样的问题时最终到了这里,但我声名太低,所以我不得不把这个评论放在答案中.
就像托马斯·詹森(Tomas Jansson)在他自己的回答中所写的那样,"$ by_category"标准投影现在附带了
first
-
Run Code Online (Sandbox Code Playgroud)
组态.
就像Alexey Zimarev在他的评论中写道的那样,即使你配置EventStore来运行所有预测,标准预测也不会自动启动.
因此,为了在启用并启动所有投影的情况下启动EventStore,您需要在yaml配置文件中使用以下内容:
RunProjections: All
StartStandardProjections: True
Run Code Online (Sandbox Code Playgroud)
或者,如果通过命令行选项进行配置,请使用:
EventStore.ClusterNode.exe --run-projections=all --start-standard-projections=true
Run Code Online (Sandbox Code Playgroud)
我想出了怎么做。默认情况下,eventstore 根据拆分后的最后一个单词创建类别-。如果你想改变这个,你必须修改$by_category投影。在该投影中,如果您只指定一行,则指定要分割的字符,但如果您想使用第一行作为类别,则必须将文件更新为以下内容:
first
-
Run Code Online (Sandbox Code Playgroud)
这告诉 eventstore 将分割后的第一个单词-作为事件的类别。
| 归档时间: |
|
| 查看次数: |
1708 次 |
| 最近记录: |