Выполнить хранимую процедуру на сервере Azure - PullRequest
0 голосов
/ 22 апреля 2019

Как выполнить пример хранимой процедуры на сервере 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;
}

пример хранимой процедуры также не может получить желаемых результатов. связывающий вопрос здесь

Ответы [ 2 ]

2 голосов
/ 22 апреля 2019

Санджив С, на основании сообщения о проблеме:

Запросы, исходящие из сценариев, не могут ссылаться на ключи разделов кроме того, для которого был отправлен запрос клиента.

В нем утверждается, что ключ вашего раздела в вашем документе должен соответствовать значению ключа раздела в вашей коллекции.

Например, ключ раздела вашей коллекции /name,

enter image description here

Затем вам нужно исключить свойство name во вставленном документе и предоставить ключ раздела, подобный этому, при запуске SP.

enter image description here

Выход:

enter image description here

0 голосов
/ 22 апреля 2019

Вам нужно передать ключ разделения в ваш документ внутри хранимой процедуры, когда вы имеете дело с динамическим объектом JS.

doc.partitionKey = 'some_partition_key'
...