Хранимая процедура в MongoDB API: Azure Cosmos DB

Коллекция Mongo повреждена после выполнения хранимой процедуры в Azure Cosmos DB с API Mongo. Вот тело хранимой процедуры:

function bulkImport(docs) {
    var collection = getContext().getCollection();
    var collectionLink = collection.getSelfLink();


    var count = 0;


    if (!docs) throw new Error("The array is undefined or null.");

    var docsLength = docs.length;
    if (docsLength == 0) {
        getContext().getResponse().setBody(0);
    }


    tryCreate(docs[count], callback);


    function tryCreate(doc, callback) {
        var options = {
            disableAutomaticIdGeneration: true
        };

        var isAccepted = collection.createDocument(collectionLink, doc, options, callback);

        if (!isAccepted) getContext().getResponse().setBody(count);
    }


    function callback(err, doc, options) {
        if (err) throw err;

        count++;

        if (count >= docsLength) {
            getContext().getResponse().setBody(count);
        } else {
            tryCreate(docs[count], callback);
        }
    }
}

Здесь выполняются хранимые процедуры непосредственно в проводнике данных Cosmos DB. вход:[{ 'type': 'A', 'name':'test' }].

2 ответа

Вот что я услышал от службы поддержки Azure:

триггеры и пользовательские функции - это функция, предоставляемая через наш SQL API. # API CosmosDB MongoDB использует площадь поверхности для программируемости MongoDB, которая не использует концепцию sprocs, триггеров, UDF. Пожалуйста, свяжитесь с нами по AskCosmosDB@microsoft.com, и мы поможем вам.

Я заметил что ты поставил disableAutomaticIdGeneration быть true а вы не предоставили "id" собственность в вашем входе [{ 'type': 'A', 'name':'test' }], Это вызовет исключение.

Вы могли бы установить disableAutomaticIdGeneration быть false или вы предоставляете "id" собственность на ваш вход и она работает.

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

Другие вопросы по тегам