gpt4 book ai didi

java - 插入新文档时,Cosmos Db 触发器未运行

转载 作者:行者123 更新时间:2023-12-02 00:23:44 24 4
gpt4 key购买 nike

我正在使用 Azure Cosmos DB。我在 Azure 门户中创建了一个简单的触发器,如下所示:

enter image description here

  var context = getContext();
var request = context.getRequest();

// item to be created in the current operation
var itemToCreate = request.getBody();
itemToCreate["address"] = "test";

// update the item that will be created
request.setBody(itemToCreate);

不幸的是,当我插入新文档时,这个触发器没有被触发。我还尝试将“触发类型”设置为“发布”。我错过了什么吗?

最佳答案

问得好!我一直认为触发器会自动运行:)。

我相信每当插入文档时触发器都不会自动运行。您需要做的是指定创建文档时要运行的触发器。

您需要做的是在发送创建文档请求时将触发器名称作为请求选项传递来注册触发器。

例如,请参阅此处的代码:https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-use-stored-procedures-triggers-udfs#pre-triggers (也复制如下)。注意 PreTriggerInclude 的使用在 RequestOptions :

dynamic newItem = new
{
category = "Personal",
name = "Groceries",
description = "Pick up strawberries",
isComplete = false
};

Uri containerUri = UriFactory.CreateDocumentCollectionUri("myDatabase", "myContainer");
RequestOptions requestOptions = new RequestOptions { PreTriggerInclude = new List<string> { "trgPreValidateToDoItemTimestamp" } };
await client.CreateDocumentAsync(containerUri, newItem, requestOptions);

关于java - 插入新文档时,Cosmos Db 触发器未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60969216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com