使用nodeJS和Azure DocumentDB批量导入。分区密钥问题

时间:2017-05-16 21:03:48

标签: node.js azure azure-cosmosdb

我尝试使用Node批量导入大量数据到DocumentDB中。我已经创建了推荐的存储过程(已在MSDN上多次发布的存储过程)。但是,当我尝试通过Node执行它时,我收到以下响应:"源自脚本的请求不能引用除提交客户端请求的分区密钥之外的分区密钥。"

Collection上的partitionKey是" /id",我在Node中的请求如下所示:

client.executeStoredProcedure('dbs/blah/blah/sprocs/blah', [docs], {partitionKey: '/id'}, ...);

我无法找到关于此的任何简明文档,因为它与Node有关。有没有人遇到过这个问题并且有解决方案吗?我完全接受了这样的想法,即我犯了一个愚蠢的错误,但这是我的第一个牛仔竞技表演,可以说是与DocumentDB有关。谢谢大家

1 个答案:

答案 0 :(得分:0)

我怀疑您在尝试使用/id导入的集合中有一个数据,而不是您指定的数据。如果是这种情况,我可以考虑两个选择:

  1. 不使用sproc并从node.js脚本一次加载一个。我建议使用async.js函数之一或其他并行化库中的等效函数,这样就可以并行处理许多请求。

  2. 您可以将数据客户端分隔为/id,然后为每个集合调用sproc。