gpt4 book ai didi

azure - 是否可以在触发器内执行跨分区查询?

转载 作者:行者123 更新时间:2023-12-03 05:48:36 25 4
gpt4 key购买 nike

将文档插入文档数据库集合时,我必须实现整数属性的自动递增。我想通过使用预创建触发器来解决这个问题,该触发器只是找到最大值并递增它。这种方法适用于简单的收集,但在使用分区收集时会出现问题:即使在指定 {enableCrossPartitionQuery: true } 之后,我的查询也仅限于我插入文档的分区。

function trigger(){
var context = getContext();
var collection = context.getCollection();
var request = context.getRequest();

// document to be created in the current operation
var documentToCreate = request.getBody();

//query for max value
var filterQuery = 'SELECT value MAX(r.Id) FROM root r';

var result = collection.queryDocuments(collection.getSelfLink(), filterQuery,
{ enableCrossPartitionQuery: true }, callback);

function callback(err, documents, responseOptions) {
if(err) throw new Error("Error" + err.message);

var maxId = documents[0] || 0;
documentToCreate["Id"] = ++maxId;
request.setBody(documentToCreate);
}
}

那么可以从触发器执行扇出查询吗?

最佳答案

与存储过程相同,触发器上下文仅限于 1 个分区。更多详细信息请参见:https://learn.microsoft.com/en-us/azure/cosmos-db/partition-data#design-for-scale (查询边界和事务)

关于azure - 是否可以在触发器内执行跨分区查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50681280/

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