在azure服务器中执行存储过程

问题描述 投票:0回答:2

如何在azure服务器中执行示例存储过程。

我正在使用cosmos db模拟器,每当我尝试执行一个示例sp时,我都会收到此错误

源自脚本的请求不能引用除提交客户端请求的分区密钥之外的分区密钥。

Stored procedure

function createToDoItem(itemToCreate) {
    var context = getContext();
    var container = context.getCollection();
    console.log("success");
    var itemToCreate={
        "Id": null,
        "UserAccountID": "1742",
        "FirstName": "Sanjeev",
        "LastName": "S",
        "Phone": "12345678",
        "Location": "",
        "StreetAddress": "vcbgvbvc",
       };

itemToCreate.partitionKey = "UserAccountID";

    var accepted = container.createDocument(container.getSelfLink(),
        itemToCreate,
        function (err, itemCreated) {
            if (err) throw new Error('Error test' + err.message);
            context.getResponse().setBody(itemCreated.id)
        });
    if (!accepted) return;
}

样本存储过程也无法获得所需的结果。链接问题here

azure stored-procedures azure-cosmosdb
2个回答
2
投票

Sanjeev S,根据问题消息:

源自脚本的请求不能引用除提交客户端请求的分区密钥之外的分区密钥。

它声称文档中的分区键需要与集合的分区键设置相匹配。

例如,您的集合的分区键是/name

enter image description here

然后,您需要在插入的文档中排除name属性,并在执行SP时提供这样的分区键。

enter image description here

输出:

enter image description here


0
投票

在处理动态JS对象时,需要将分区键传递给存储过程中的文档。

doc.partitionKey = 'some_partition_key'
© www.soinside.com 2019 - 2024. All rights reserved.