来自:https://rethinkdb.com/docs/changefeeds/javascript/#including-result-types
是否可以进一步定义uninitial
?如果initial
只是我在开始Feed之前发生的add
,那么我该如何获得uninitial
?
如何获得state
?将includeInitial, includeState, includeTypes
设置为true
后,我会获得单独的状态文档,但不会获得type: state
接口。
答案 0 :(得分:1)
对于您链接的文档的“包含初始值”部分中的“未初始化”结果有更好的解释。引用:
如果文档的初始结果已发送并且对该文档进行了更改,则会将其移动到结果集的未发送部分(例如,更改源会监视前100个海报,前50个已经过已发送,并且海报48已成为海报52),将发送“无意”通知,其中包含old_val字段但没有new_val字段。
这些存在的原因是由于RethinkDB更改源如何实现初始结果逻辑。在表的密钥空间中,从左到右或多或少地处理初始结果。始终存在用于发送初始结果的密钥空间的片段,以及更改源已经开始实时“流式传输”当前更新的剩余片段。当您首次使用includeInitial: true
打开更改源时,整个键范围将处于初始化状态。然后,当初始结果通过更改源发送时,初始化和流式传输部分之间的关键边界移动,更多的键空间变为流式传输。
uninitial
值。这只能用于使用二级索引的更改源,因为给定文档的主键永远不会更改。
关于state
:我似乎正好收到type: "state"
文件。例如:
r.table('t1').changes({includeStates: true, includeInitial: true, includeTypes: true})
{ "state": "ready" ,
"type": "state" }
{ "state": "initializing" ,
"type": "state" }
你没有收到这些文件吗?