嗨,我有一个这样创建的示例存储过程
function bulkImport(items) {
var container = getContext().getCollection();
var containerLink = container.getSelfLink();
var items=[{
"UserAccountID":"1236",
"FirstName": "Sanjeev",
},{
"UserAccountID":"1235",
"FirstName": "Sanjeev",
}];
// The count of imported items, also used as current item index.
var count = 0;
// Validate input.
if (!items) throw new Error("The array is undefined or null.");
var itemsLength = items.length;
if (itemsLength == 0) {
getContext().getResponse().setBody(0);
}
// Call the create API to create an item.
tryCreate(items[count], callback);
function tryCreate(item, callback) {
var isAccepted = container.createDocument(containerLink, item, callback);
if (!isAccepted) getContext().getResponse().setBody(count);
}
function callback(err, item, options) {
if (err) throw err;
// One more item has been inserted, increment the count.
count++;
if (count >= itemsLength) {
// If we created all items, we are done. Just set the response.
getContext().getResponse().setBody(count);
} else {
// Create next document.
tryCreate(items[count], callback);
}
}
}
如何在波斯菊模拟器中执行此sp。如何为每个项目唯一地设置分区键。
由于分区键应该是唯一的,因此我们在执行时不能提供单个分区键。
答案 0 :(得分:0)
首先,如果不需要,您可以在cosmos数据库中创建未分区的集合。门户网站有一些限制,但sdk允许。您可以参考我以前的案例:Is it still a good idea to create comos db collection without partition key?。
第二,存储过程的批量导入不适合分区集合,因为您需要为存储过程的每次执行提供pk。请参考以下链接:Azure Cosmos DB asking for partition key for stored procedure
最后,还有许多其他解决方案可将数据导入cosmos db,例如Azure Cosmos DB Data migration tool,值得您尝试。