Хранимая процедура Azure Cosmos DB с параметром - PullRequest
0 голосов
/ 23 сентября 2019

Я новичок в Azure Cosmos Db и работаю над простой хранимой процедурой (JavaScript), которая должна возвращать документ, если указан Id.Я не получаю "документы не найдены" при выполнении хранимой процедуры.Ниже мой код:

function sample(id) {
    var collection = getContext().getCollection();
    var query = {
    query: "SELECT * FROM c WHERE c.id = \'id\'"
};

    // Query documents and take 1st item.
    var isAccepted = collection.queryDocuments(
        collection.getSelfLink(),query,
    function (err, feed, options) {
        if (err) throw err;

        // Check the feed and if empty, set the body to 'no docs found', 
        // else take 1st element from feed
        if (!feed || !feed.length) {
            var response = getContext().getResponse();
            response.setBody('no docs found');
        }
        else {
            var response = getContext().getResponse();
            var body = { id: id, feed: feed[0] };
            response.setBody(JSON.stringify(body));
        }
    });

    if (!isAccepted) throw new Error('The query was not accepted by the server.');
}```

1 Ответ

0 голосов
/ 23 сентября 2019

Запросы автоматически попадают в область ключа раздела, передаваемого хранимой процедуреТаким образом, ваш запрос является ключом раздела = и идентификатором =.Когда вы пропускаете передачу ключа раздела, он также устанавливается в значение undefined.

Можете ли вы попробовать установить его через FeedOptions.PartitionKey в .NET или x-ms-partition-key заголовок?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...