Azure CosmosDB数据触发器未进行实际更新

时间:2019-06-25 11:53:01

标签: azure triggers azure-functions azure-cosmosdb azure-cosmosdb-sqlapi

我已按照this link

使用CosmosDB触发器模板创建了Azure函数。

一切正常,我可以看到来自在Cosmos DB中创建的我的收藏集的更新。

enter image description here

现在的问题是,我只想要那些具有实际更新的文档。目前,如果我使用代码更新文档,它将更新其时间戳,并且文档将处于更新状态。尽管没有实际的数据更新。

我的问题:

  1. 如何仅获取“实际更新”文档(仅那些修改了json字段的文档)?
  2. 如何也跟踪已删除的文档?他们也没有流到这里?

1 个答案:

答案 0 :(得分:1)

1)由于对文档的任何推送都会更新-内部管理的-_ts属性,因此这仍然是对整个文档的更改。如果更改了文档的用户数据,则在这里无关紧要。变更供稿不知道这种区别。因此,您还将始终在更改摘要中看到这些更新。

2)删除未添加到变更Feed中,但是有一种可能的解决方法:

  

当前更改Feed不会记录删除。 [...]您可以在要删除的项目上添加一个软标记,例如,可以在名为“已删除”的项目中添加一个属性,并将其设置为“ true”,然后在该项目上设置一个TTL,因此可以将其自动删除。

https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed#change-feed-and-different-operations