Как сделать запрос к базе данных с помощью хранимой процедуры в Azure Cosmos DB - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь создать хранимую процедуру, которую мое приложение может вызывать для запуска операций на базе данных SQL cosmos в Azure.Я разрабатываю это с помощью портала Azure.

Я сгенерировал пример процедуры, которая показана ниже.

// SAMPLE STORED PROCEDURE
function sample(prefix) {
    var collection = getContext().getCollection();

    // Query documents and take 1st item.
    var isAccepted = collection.queryDocuments(
        collection.getSelfLink(),
        'SELECT * FROM root r',
    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 = { prefix: prefix, feed: feed[0] };
            response.setBody(JSON.stringify(body));
        }
    });

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

Когда я запускаю это, я не получаю никаких результатов, но я создалодин документ в разделе документов под тем же деревом, что и эта хранимая процедура.Когда я запускаю хранимую процедуру, я не получаю результатов.Что я делаю не так?

1 Ответ

0 голосов
/ 19 сентября 2018

jaredad7.Код вашей хранимой процедуры полностью совпадает с примером кода на портале.Работает нормально, без проблем.

enter image description here

Может быть, вы могли бы проверить следующие пункты:

1.проверьте, находится ли документ подта же коллекция с хранимой процедурой (просто закройте другие несвязанные теги и проверьте еще раз!)

2.проверьте, может ли sql select * from root r получить данные на портале.

3.попробуйтесоздайте новую коллекцию и новую хранимую процедуру, а затем проверьте, является ли ситуация постоянной.

4.пробуйте использовать console.log() для отладки и следования хранимой процедуре, см. мой предыдущий случай: Какотладить хранимые процедуры Azure Cosmos DB?

Надеюсь, это поможет вам.


Просто для краткости, нам также нужно проверить, не пропустили ли мы ключ разделения при выполнении запросаSQL!

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