Azure cosmosdb MongoDB API中的存储过程:Azure Cosmos DB

Azure cosmosdb MongoDB API中的存储过程:Azure Cosmos DB,azure-cosmosdb,azure-cosmosdb-mongoapi,Azure Cosmosdb,Azure Cosmosdb Mongoapi,使用Mongo API在Azure Cosmos DB上执行存储过程后,Mongo集合已损坏。 以下是存储过程的主体: 功能导入(文档){ var collection=getContext().getCollection(); var collectionLink=collection.getSelfLink(); var计数=0; 如果(!docs)抛出新错误(“数组未定义或为null”); var docsLength=docs.length; 如果(docsLength==0){ ge

使用Mongo API在Azure Cosmos DB上执行存储过程后,Mongo集合已损坏。 以下是存储过程的主体:

功能导入(文档){
var collection=getContext().getCollection();
var collectionLink=collection.getSelfLink();
var计数=0;
如果(!docs)抛出新错误(“数组未定义或为null”);
var docsLength=docs.length;
如果(docsLength==0){
getContext().getResponse().setBody(0);
}
tryCreate(单据【计数】,回调);
函数tryCreate(doc,回调){
变量选项={
disableAutomaticIdGeneration:正确
};
var isAccepted=collection.createDocument(collectionLink、文档、选项、回调);
如果(!isAccepted)getContext().getResponse().setBody(计数);
}
函数回调(错误、文档、选项){
如果(错误)抛出错误;
计数++;
如果(计数>=文件长度){
getContext().getResponse().setBody(计数);
}否则{
tryCreate(单据【计数】,回调);
}
}

}
我注意到您将
disableAutomaticIdGeneration
设置为
true
,并且在您的输入
[{'type':'A','name':'test'}]中未提供
“id”
属性。这将导致异常

您可以将
disableAutomaticIdGeneration
设置为
false
,或者在输入中提供
“id”
属性,然后它就可以工作了


希望它能帮助您。

这是我从Azure支持部门听到的:


触发器和UDF是通过我们的SQL API公开的特性#CosmosDB的MongoDB API使用MongoDB可编程表面积——它不使用存储过程、触发器和UDF的概念。请联系我们AskCosmosDB@microsoft.com我们将帮助您。

我尝试提供id,但无效。我尝试将“disableAutomaticIdGeneration”设置为false,但也不起作用。