Stored procedures 来自DocumentDB存储过程的触发
我们在DocumentDB示例代码中有一个以存储过程为模型的存储过程。该存储过程获取一个文档数组,执行一些操作,并最终调用createDocument,据说它是异步的 现在我们已经为Create编写了一个预触发器,它检查一些字段,并可以选择向请求的某些文档中添加一些附加字段Stored procedures 来自DocumentDB存储过程的触发,stored-procedures,triggers,azure-cosmosdb,Stored Procedures,Triggers,Azure Cosmosdb,我们在DocumentDB示例代码中有一个以存储过程为模型的存储过程。该存储过程获取一个文档数组,执行一些操作,并最终调用createDocument,据说它是异步的 现在我们已经为Create编写了一个预触发器,它检查一些字段,并可以选择向请求的某些文档中添加一些附加字段 { "id":"triggerNameRedacted", "triggerType": "Pre", "triggerOperation": "Create", "body": "funct
{
"id":"triggerNameRedacted",
"triggerType": "Pre",
"triggerOperation": "Create",
"body": "function()
{
var context = getContext();
var request = context.getRequest();
var documentToCreate = request.getBody();
documentToCreate.msg = 'got to here';
request.setBody(documentToCreate);
}"
}
我们将其附加到存储过程中传递给createDocument
的options
对象
var options = {
disableAutomaticIdGeneration: false,
preTriggerInclude: 'triggerNameRedacted'
};
我们希望看到触发器被调用。但是,没有触发触发器。我们尝试了各种修改,试图看到触发器被触发,但仍然没有:将大容量存储过程和触发器减少到绝对最小值,将triggerOperation更改为“All”
在服务器端包装的中,以及在上面链接的用于收集的文档中,服务器端代码似乎没有查看options对象的任何*Trigger*
字段,例如我们的例子中的preTriggerInclude
在存储过程中调用
createDocument
是否可能执行预创建触发器,或者限制是否适用于任何服务器端代码?触发器不能从服务器端SDK调用(例如,从另一个触发器或存储过程内部)