Хранимая процедура в 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"
собственность на ваш вход и она работает.
Надеюсь, это поможет вам.