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

时间:2019-04-22 06:06:33

标签: azure stored-procedures azure-cosmosdb

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

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

  

源自脚本的请求不能引用分区密钥,而不是提交了客户端请求的分区密钥。

存储过程

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

2 个答案:

答案 0 :(得分:2)

Sanjeev S,基于问题消息:

  

源自脚本的请求无法引用分区键   除了已提交客户请求的请求。

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

例如,您集合的分区键是ColumnCollapseListener

enter image description here

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

enter image description here

输出:

enter image description here

答案 1 :(得分:0)

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

doc.partitionKey = 'some_partition_key'